【发布时间】: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()。 -
你能分享你的代码吗?