使用mootools注入文本输入时缺少值属性

时间:2012-10-18 11:53:59

标签: mootools element code-injection

正如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)但是无论有多少空白输入,这总是解析为真。

有没有更好的方法来实现我的目标,还是有针对什么似乎是错误的修复?

1 个答案:

答案 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=="");})