放在这里的示例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;
});
如果在First输入中键入内容,则Second输入中的值会更改(可以)。对于第三个输入,期望相同(如果第二个输入中的值发生变化,则第三个输入中的值为1)。但它不起作用。
需要改变什么?假设代替on("change"
需要使用别的东西
非常糟糕的结论做完实验后得出结论。如果某些输入字段中的值是由脚本设置的(不是手动),那么我不能在javascript
/ jquery
if
语句中基于该值。
例如,id="is_exchange_rate_changed_test1"
(第三个输入)中的值由脚本设置/创建。
然后我希望if ($("#is_exchange_rate_changed_test1").val() > 0)
做点什么。这不起作用,因为if
的值始终为空。
请提供建议,如果有任何简单的解决方案。目前只找到将输入字段值与ajax
一起传递到php
并在php
执行if
答案 0 :(得分:5)
当脚本更改值时,不会触发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