jQuery.change()
方法,如果我通过键盘实际更改了某些内容,它可以正常工作。这意味着,如果我在HTML页面的<input type="text">
字段中输入内容,那么我将.change()
方法中的一个字符更改为<input type="text">
方法。
但是,现在的问题是我正在通过jQuery本身更改.change()
中的文本,现在.change()
在文本更改时不会触发它而导致它不会通过输入键盘。我已经尝试了各种方法,但它似乎不起作用。它仅在我通过键盘输入进行更改时才有效。
如果在不使用键盘输入的情况下更改文本,如何激活<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/>
?
这是HTML部分:
$("#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("");
}
});
这是jQuery部分:
$("#AddLongitude").val(e.latlng.lng);
$("#AddLatitude").val(e.latlng.lat);
这是价值变化的部分:
// fileUri is a string like "file:///var/mobile/Containers/Data/Application/9B754FAA-2588-4FEC-B0F7-6D890B7B4681/Documents/filename"
if (Platform.OS === 'ios') {
let arr = fileUri.split('/')
const dirs = RNFetchBlob.fs.dirs
filePath = `${dirs.DocumentDir}/${arr[arr.length - 1]}`
} else {
filePath = audioDataUri
}
其中e.latlng.lng或e.latlng.lat是保存要写入的值的变量
答案 0 :(得分:2)
您必须在更改值后手动触发change()函数,因为它不是用户输入。 change()方法只触发用户更改了值。
$("#AddLongitude").val(e.latlng.lng).change();
$("#AddLatitude").val(e.latlng.lat).change();