cho*_*obs 22 jquery hidden input
如何检测隐藏输入值的变化?我已经尝试过这些方法但没有成功:
$('#id_inpout').live('change',function () {
var id_el = $(this).attr('id');
alert(id_el);
});
Run Code Online (Sandbox Code Playgroud)
和
$('#id_inpout').change(function () {
var id_el = $(this).attr('id');
alert(id_el);
});
Run Code Online (Sandbox Code Playgroud)
和
$('#id_inpout').bind('change',function () {
var id_el = $(this).attr('id');
alert(id_el);
});
Run Code Online (Sandbox Code Playgroud)
Ale*_*lex 71
您可以trigger('change')
在为隐藏输入分配新值后使用:
$('#hidden_input').val('new_value').trigger('change');
Run Code Online (Sandbox Code Playgroud)
Den*_*ret 27
正如在重复中所说,并且如您所见,在javascript中完成的更改不会触发change
事件.
因为我没有在重复项中找到可接受的答案(这是不涉及隐藏值设置方式的变化的答案),并且假设您确实需要(当您更改隐藏时,您无法调用您的函数)输入val),这是你可能会做的:
function survey(selector, callback) {
var input = $(selector);
var oldvalue = input.val();
setInterval(function(){
if (input.val()!=oldvalue){
oldvalue = input.val();
callback();
}
}, 100);
}
survey('#id_inpout', function(){console.log('changed')});
Run Code Online (Sandbox Code Playgroud)
但我最好使用更直接的解决方案(即在更改隐藏的输入值时调用函数).这个函数可能是你自己的一个简单的事件调度程序(基本上是一个包装函数列表的对象,当它被调用时调用).
编辑:现在是2015年,对于人们不知道,不,网络世界的最新进展都没有解决这个问题.变异观察者不会观察输入的值属性(它实际上不是DOM),而ES6对象观察者也无法对这些本机对象进行无能为力.