2011-03-27 46 views
1

我需要检测隐藏字段何时更改。 我想每次做这个隐藏的变化值时做一些动作jquery如何检测隐藏字段的更改

我读过jquery文档并找到了变化(fn),但它表示它只会在焦点被释放时触发。

将工作的隐藏领域? 我想隐藏字段没有焦点事件

任何帮助将不胜感激 感谢

+0

我不完全清楚你的问题。你的隐藏领域的价值如何变化?如果你已经用JS改变它,你可以在那个时候执行你的动作。 – 2011-03-27 04:10:39

+0

我也有这个问题。在我的情况下,隐藏字段正在被我无法更改的库改变,所以我希望通过拦截更改来注入回调。似乎是不可能的。 – dennisjbell 2012-06-23 20:10:31

回答

1

你可以设定一个较短的时间间隔检查这样的值:

var defaultValue = ''; 

setInterval(function() { 
    if ($('.input').val() != defaultValue) { 
     defaultValue = $('.input').val(); 
     //do something now that the value has changed 
    } 
}, 100); 
1

的。当您真正改变您关注的内容时,会调用change()函数。你不可能专注于隐藏的领域。你应该在这里添加脚本让我们看看你实际想要做什么以及它有什么问题。

0

您已经需要访问隐藏字段以更改其值。正如@Michael Copeland所说,如果你使用jQuery来执行这个改变,你可以在同一个地方处理这个改变。

假设您通过按下按钮来更改隐藏字段的值,发生这种情况时您必须将该字段的值写入div。 下面是这个例子的解决方案:

HTML:

<input id="inp" type="hidden" value="0" /> 
<div id="div"></div> 
<button id="butt">Change the value of the hidden input</button> 

JS:

$(document).ready(function(){ 
    //this button toggles the value between 1 and 0 
    $("#butt").click(function(){ 
     var val = ($("#inp").val()=="1")? "0" : "1" ;//choose 1 or 0 
     $("#inp").val(val);//set the value to the hidden input   
     setDiv();//calls the handler of the change 
    }); 

    function setDiv(){ 
     $("#div").html($("#inp").val()); 
    } 
}); 

你可以在这里进行测试:http://jsfiddle.net/aETUJ/

希望这有助于。 :)