【问题标题】:How to set value for the form element using mootools如何使用 mootools 为表单元素设置值
【发布时间】:2010-07-08 16:37:45
【问题描述】:

我有一个表单,它有输入元素和带有多选的选择元素。那么如何在 mootools 中为输入元素和选择元素设置值。

【问题讨论】:

    标签: forms select input mootools element


    【解决方案1】:

    基本上 - element.get("value"); 返回所有输入、选择和文本区域的值,.set("value", value); 设置它们(倍数除外)

    使用多个选择更复杂 - 上面只返回第一个选择,您需要执行element.getSelected().get("value") 来接收一个值数组(.getSelected() 将返回指向实际option 的指针元素)

    最后,要设置多个选择,我能想到 atm 的唯一方法是编写你自己的元素原型,它遍历具有指定值的子节点并执行.set("selected", "selected")

    如果您在编写后者时需要任何帮助,请告诉我

    【讨论】:

      【解决方案2】:

      对于下拉菜单:

      $('idOfSelect').selectedIndex = x;
      

      对于文本:

       $('IdOfInput').value = 'Foo';
      

      【讨论】:

      • 还有其他方法可以做到这一点。就像在 jQuery('#idOfSelect').val([2,4]) 或 jQuery('#idOfInput').val('Foo')
      • 关于选择元素我只知道选择元素的值数组。我怎样才能把它变成 selectedIndex
      【解决方案3】:

      关于倍数的答案是正确的,需要使用selectEl.getChildren('option').each(function(option)...

      但即使对于单选,在 IE 中(我正在 IE9 中对此进行测试)如果每个选项中都没有“值”属性,那么 Mootools 会失败,即 selectEl.set('value', value) 不起作用。如果您设置每个元素的“值”属性,则在 FF 中它可以工作,而在 IE 中它可以工作。

      我的解决办法是:

      selectEl.getElements('option').each(function(option) {
         option.selected = option.get('value')==value
      });
      

      注意 option.get('value') 即使在没有 value 属性的 IE 中也有效,Mootools 提供选项的 text

      【讨论】:

        猜你喜欢
        • 2015-02-05
        • 1970-01-01
        • 2011-11-27
        • 2011-09-07
        • 1970-01-01
        • 1970-01-01
        • 2011-08-03
        • 2018-04-17
        • 1970-01-01
        相关资源
        最近更新 更多