【问题标题】:How can I make .change() fire when the text changes without using input from a keyboard?当文本更改而不使用键盘输入时,如何使 .change() 触发?
【发布时间】:2017-11-17 02:51:42
【问题描述】:

我正在使用jQuery.change() 方法,如果我真的通过键盘更改某些内容,它可以正常工作。意思是说,如果我在我的 HTML 页面上的 <input type="text"> 字段中输入一些内容,那么我会更改一个字符,然后将鼠标移出.change() 方法会触发。

但是,现在的问题是我正在通过 jQuery 本身更改 <input type="text"> 中的文本,现在 .change() 在文本更改时不会触发,因为它不是通过输入键盘。我已经尝试了各种方法,但似乎不起作用。它仅在我通过键盘输入进行更改时才有效。

如何在不使用键盘输入的情况下使.change() 在文本更改时触发?

这是 HTML 部分:

<label for="AddLongitude">*Longitude: </label>
<label id="Add_Long_Label" style="color:red"></label>
<input type="text" id="AddLongitude" name="Add_ServiceCompany" 
    placeholder="Tap on the map" maxlength="18" data-clear-btn="true"  readonly/>

<label for="AddLatitude">*Latitude: </label>
<label id="Add_Lat_Label" style="color:red"></label>
<input type="text" id="AddLatitude" name="Add_ServiceCompany" 
    placeholder="Tap on the map" maxlength="18" data-clear-btn="true" readonly/>

这是 jQuery 部分:

$("#AddLongitude").change(function () {
            if ($("#AddLongitude").val() == "") {
                $("#Add_Long_Label").text("This field is mandatory.");
                $("#Add_Lat_Label").text("This field is mandatory.");
            }
            else {
                $("#Add_Long_Label").text("");
                $("#Add_Lat_Label").text("");
            }
        });

这是值变化的部分:

$("#AddLongitude").val(e.latlng.lng);
$("#AddLatitude").val(e.latlng.lat);

其中 e.latlng.lng 或 e.latlng.lat 是保存要写入的值的变量。

【问题讨论】:

  • 分享代码看看有什么问题
  • 你能贴一些代码吗?
  • 我已经编辑了原帖
  • “它只在我通过键盘输入进行更改时才有效。” - 我想您会发现如果您通过鼠标或 进行更改,它也会起作用编辑 菜单,换句话说,change 事件将在 user 更改值然后标签/点击离开字段时触发,但如果值更改则不会触发通过您的 JavaScript。但是你可以在改变值后调用.change()或者.trigger('change')自己触发,比如$(yourSelector).val("new value").change()
  • 你能分享你的代码吗?

标签: jquery html cordova


【解决方案1】:

您必须在更改值后手动触发 change() 函数,因为它不是用户输入。 change() 方法只触发用户更改了值。

$("#AddLongitude").val(e.latlng.lng).change(); 
$("#AddLatitude").val(e.latlng.lat).change();

【讨论】:

  • 太棒了!感谢您的帮助!您不仅提供了答案,还提供了易于理解的解释!赞!你真棒Chathura Buddhika!
  • 你也可以使用$("#AddLongitude").trigger('change');
猜你喜欢
  • 1970-01-01
  • 2020-01-18
  • 2014-05-13
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多