正如this问题和this提到的那样,当注入输入时,值属性似乎没有添加到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
)但是无论有多少空白输入,这总是解析为真。
有没有更好的方法来实现我的目标,还是有针对什么似乎是错误的修复?
答案 0 :(得分: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=="");})