1

正如这个问题和这个小提琴所指出的,当注入一个输入时,值属性似乎没有被添加到 DOM 中,MooTools 似乎在内部处理它。不幸的是,这意味着这样注入的输入:

new Element("input", {type: "text", value: "injected value"}).inject(parent);

不能像这样选择:

parent.getElements('input[value="injected value"]').length;

(如果存在 value 属性,则返回 0 而不是 1)

在我的项目中,我需要插入空白输入框,但前提是还没有空白输入框;if(parent.getElements('input[value=""]').length == 0)但是,无论有多少空白输入,这总是解决为真。

有没有更好的方法来实现我的目标,或者是否有修复看起来像错误的方法?

4

1 回答 1

1

您可以尝试添加:

var x = new Element("input", {type: "text", value: "injected value"}).inject(parent);
x.setAttribute("value",x.value);

警告:虽然这解决了元素的 value 属性未反映的问题,但 value 属性通常不是检查字段是否为空的好方法,因为它没有与输入的内容同步。

最好使用这样的东西:

$$('input[type=text]').filter(function(item){return (item.value=="");})
于 2012-10-18T11:57:07.037 回答