如果依赖输入中的值未手动更改,Jquery输入值不会更改

Jquery input value does not change if value in depending input changes not manually

本文关键字:输入 Jquery 依赖 如果      更新时间:2023-09-26

此处的示例http://jsfiddle.net/aS87B/3/

这里有3个输入字段

First input<br>
<td class='exchange_rate1'>
<input type="text" name="exchange_rate1" id='exchange_rate1' class='exchange_rate_changed1' value="">
</td>
<br>
Second input<br>
<td>
<input type="text" name="is_exchange_rate_changed1" id="is_exchange_rate_changed1" class='exchange_rate_changed_test1'>
</td>
<br>        
Third input <br>
<td>
<input type="text" name="is_exchange_rate_changed_test1" id="is_exchange_rate_changed_test1">
</td>        

这是jquery/javascript

$(".exchange_rate_changed1").on("change", function () {
document.getElementById('is_exchange_rate_changed1').value = 1;
});

$(".exchange_rate_changed_test1").on("change", function () {
document.getElementById('is_exchange_rate_changed_test1').value = 1;
});

如果在第一个输入中键入一些内容,则第二个输入中的值会发生变化(这是可以的)。第三个输入也应如此(如果第二个输入中的值发生变化,则第三个输出中的值为1)。但是它不起作用。

需要改变什么?假设需要使用其他而不是on("change"

非常糟糕的结论经过实验得出结论。如果某个输入字段中的值是由脚本设置的(不是手动设置的),那么我就不能以javascript/jqueryif语句中的值为基础。

例如,id="is_exchange_rate_changed_test1"(第三个输入)中的值由脚本设置/创建。

然后我想让if ($("#is_exchange_rate_changed_test1").val() > 0)做点什么。这不起作用,因为if的值始终为空。

如果有任何简单的解决方案,请提供建议。目前,唯一的解决方案是将ajax的输入字段值传递给php,并在php中执行if

当脚本更改值时,不会触发change等事件,需要手动触发它们。您可以使用jQuery提供的.trigger()方法手动触发事件,也可以使用其短手版本,如下所示

$(".exchange_rate_changed1").on("change", function () {
    $('#is_exchange_rate_changed1').val(1).change()
});

$(".exchange_rate_changed_test1").on("change", function () {
    $('#is_exchange_rate_changed_test1').val(1).trigger('change')
});

演示:Fiddle