【问题标题】:Missing value attribute when injecting text input using mootools使用 mootools 注入文本输入时缺少值属性
【发布时间】:2012-10-18 20:04:00
【问题描述】:

正如this question 和this fiddle 所指出的,在注入输入时,似乎没有将 value 属性添加到 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) 但是,无论有多少空白输入,这总是会解析为 true。

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

【问题讨论】:

    标签: mootools element code-injection


    【解决方案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=="");})
    

    【讨论】:

      猜你喜欢
      • 2011-09-07
      • 2017-08-02
      • 2013-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-12
      • 2013-09-17
      • 1970-01-01
      相关资源
      最近更新 更多