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

时间:2017-11-17 02:51:42

标签: jquery html cordova

嘿,大家好,这就是问题所在。我正在使用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是保存要写入的值的变量

1 个答案:

答案 0 :(得分:2)

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

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