【发布时间】:2016-07-06 22:36:11
【问题描述】:
查看以下代码片段
$(document).on('input','#id1, #id2, #id3', function(){
$id1 = $('#retail').val();
$id2 = $('#tax').val();
$id3 = $('#discount_per_unit').val();
$total = Number($id1) + Number($id2) - Number($id3);
$('#total').val($total);
});
现在,用户可以输入#id1、#id2 的输入字段。但我根据条件为用户填写了#id3 的 Ajax。 .on(input 或 .on(change 事件仅检测用户输入,但不检测 Ajax 输入。那么有没有办法让 jquery 也检测 Ajax 输入。
基本上我有一个用户可以选择的下拉菜单,Ajax 将使用下拉值来获取附加数据并自动填充到 id3 输入字段。看起来像这样。
$('#id3').val($somevalue);
但是我的 .on("change" 没有检测到用户何时选择了不同的下拉选项,因此 #id3 已更新,但我使用 id1 虽然 id3 的计算没有更新,除非我更改了 id1 或 id2 上的某些内容。
【问题讨论】:
-
一个简单的解决方案是将您的代码分解为一个函数,并从
on(input、on(change以及来自您的ajax 的success回调中调用它。 -
ajax 输入是什么意思?您的意思是在ajax返回中完成的更改?如果是这样,您需要手动触发更改。除此之外,您需要使用
.on("change", ... -
如何使用:
$('#id3').val($somevalue).trigger('input')?
标签: javascript jquery ajax