【问题标题】:Jquery click event not working after change event更改事件后Jquery单击事件不起作用
【发布时间】:2020-05-04 07:34:22
【问题描述】:

这是我的代码:

 function change() {
        console.log("change");
        $('span[data-valmsg-for="Car"]').text('');
    }

$("#saveCar").on("click", function () {
            console.log("savecar");
            if (IsCarFormValid() == true) {
                $("#saveCar").attr("disabled", true);
                var model = {};

            }
        });

当我更改输入中的数据并单击按钮时,按钮单击事件不起作用。为什么?

【问题讨论】:

  • 您能否在此处使用jsfiddlesnippet 为此创建一个small demo 以显示正在发生的问题。
  • 这里是例子:jsfiddle.net/u5md1zk2
  • 更改文字点击保存
  • 您的保存按钮仍然有效
  • @CarstenLøvboAndersen 在输入处于活动状态时单击保存按钮时它不起作用。

标签: html jquery dom


【解决方案1】:

使用alert(),您会看到该事件运行良好:

$("#Car").on("change", function() {
  console.log("vincode change");
  $('span[data-valmsg-for="Car"]').text('');
});

$("#saveCar").on("click", function() {
  alert("button is clicked")
  console.log("savecar");
  var model = {};
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type="text" class="form-control" id="Car" name="Car" value="ggdsgdsagdgag">
<span data-valmsg-for="Car" class="text-danger">some validation error</span>

<button type="button" class="btn btn-success" id="saveCar">Save</button>

可能有点令人困惑的是句子some validation erroronBlur 事件之后被删除(当鼠标在输入之外单击时)。因此,如果您更改文本并直接单击按钮,文本将首先消失,使您的光标不再位于按钮上。所以在实践中,你不会点击按钮。

但是如果你改变句子,点击输入之外的地方(不是按钮)然后然后在按钮上,你会看到警告信息。

【讨论】:

  • 仅在一种情况下不起作用。当 span 中的文本存在时,对输入进行更改后单击保存按钮。
  • @aniogs 阅读第一行之后的文字“它工作正常”(当它不是时)
  • 是的,这是因为这里的 blur 事件。我在帖子的最后解释一下。所以在这里它不起作用,但我知道为什么。问题是Why it's not working?
  • @freedomn-m 我说the event is working fine 就是这样。问题不在于事件本身,而在于它是如何触发的
猜你喜欢
  • 2022-09-23
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 2018-09-18
  • 1970-01-01
  • 1970-01-01
  • 2014-05-05
相关资源
最近更新 更多