javascript - 如果依赖输入中的值不是手动更改,则 Jquery 输入值不会更改

标签 javascript jquery

示例放在这里 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;
});

如果在第一个输入中键入内容,第二个输入中的值会发生变化(没问题)。期望第三个输入相同(如果第二个输入中的值发生变化,则第三个输入中的值为一)。但是它不起作用。

需要改变什么?假设 on("change" 需要使用其他东西

非常糟糕的结论 做了实验后得出结论。如果某些输入字段中的值是由脚本设置的(不是手动设置的),那么我不能在 javascript/jquery if 语句中基于该值.

例如,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

关于javascript - 如果依赖输入中的值不是手动更改,则 Jquery 输入值不会更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18570480/

相关文章:

jquery - 停止iframe YouTube视频

javascript - 在大窗口尺寸上将所有 "px"值更改为 "vw"

javascript - underscore.js 如何使用 this._wrapped

javascript - 如何传递从服务器返回的数据,然后将返回的数据转移到另一个路由?

javascript - 按 Enter 键执行 jquery 函数

javascript - 加载初始网站后在后台加载数据

javascript - 有没有办法根据单个值在 html 元素的多个数据属性中搜索数组?

javascript - JavaScript React Meteor 的动态导入

javascript - 在 firebreath 的 javascript 端创建一个 JSAPIPtr

javascript - 验证和 ajax 其中之一不起作用