2011-06-03 82 views
2

我有几个领域在现场更改的数据组事件通过jQuery

$( “#A1”)改变(函数(){ 的console.log( '火');})。 ;

但是当值变化不用户事件不起作用

形式[0] .VAL = 100;

事件不起作用

我怎么能抓住这个变化的数据? 从不同的地方ps数据更改不是我的代码建议像触发('更改')不好主意

回答

0

我不认为事件会触发,当你设置该值的方式。

当您在浏览器中设置元素的值时它工作吗?

你可以做的是调用窗体[0] .change(),它应该工作。

+0

代码设置所有值不是我的maby有另一种方式导致这种变化? – Alexandr 2011-06-04 00:02:41

+0

我认为,如果您无法控制谁在更改DOM元素的值,那么您可能会处于亏损状态。就像jereme所说的那样,通过创建用户必须使用的抽象(仅限于惯例),您可以获得很好的服务,但即使如此,DOM也适用于所有人。你也许可以使用一个使用观察模式的库来监视你,这样你就不必自己进行轮询。我认为Knockout.js具有其中一些功能。 – hivie7510 2011-06-04 23:15:49

0

更改value属性不会触发change事件。

事实上,你的代码应该改变value而不是val

更新后可以明确调用它。

form[0].value = 100; 
form.change(); 

但是你提到这不是一个选项。

唯一的另一种方法是轮询更改。

0

您可以定义一种使用窗体内控件的方式。创建一个JavaScript函数,外部开发人员可以调用该函数来设置给定字段的值并使其使用该方法。然后,你可以改变或做任何你想要的内容。