【问题标题】:setting the value of a select form with jquery使用 jquery 设置选择表单的值
【发布时间】:2012-03-28 20:45:52
【问题描述】:

显然你有以下内容

<select>
    <option value="0">One</option>
    <option value="1">Two</option>
</select>

$('select').val('1'); // selects "Two"
$('select').val('Two'); // also selects "Two"

但是如果你有

   <select>
        <option value="0">1</option>
        <option value="1">0</option>
    </select>

我想设置表单的值...如何告诉 jquery 专门使用值字段或选项标签之间的文本...

【问题讨论】:

  • 提示:你没有设置值,你设置了 selectedIndex。
  • 它没有:jsfiddle.net/Z9ySD.
  • @pimvdb - 实际上,如果您从选项元素中删除值,这似乎可行。 jQuery 的 .val() 页面实际上使用了这样的示例,尽管我不建议这样做。
  • @j08691:你说得对。虽然 OP 的困惑不适用于这种情况。

标签: javascript jquery forms select


【解决方案1】:
​$('select').find('option[value="1"]')​​​​​​​​​​​​​​​​​.attr('selected', true );  

【讨论】:

  • 应该是.attr('selected', 'selected')
  • 仅仅因为它有效并不意味着它是正确的。所选元素的 selected 属性的正确值是“selected”而不是“true”。
  • 是的,但是 jquery 为您设置了它,检查 DOM 并注意它设置了 'selected' = 'selected'。所以这是正确的。仅仅因为你不同意并不意味着另一个人是错的。顺便说一句,这在 jquery 中是相当标准的,就像attr.('checked', true) 一样。你不知道它并没有错。
  • I_C,请阅读stackoverflow.com/questions/1311287/… 我还鼓励您使用 Google 将所选属性分配给选项元素的正确方法。
  • 对不起,先生,我明白您的意思。但是为什么设置 .attr('checked', true) 对复选框起作用呢?在 jQuery 页面和许多其他 stackoverflow 页面上也建议使用它。甚至以为每个人都知道它应该是.attr('checked', 'checked')
【解决方案2】:

只需根据值(使用属性选择器)选择option,然后像这样设置选择的属性:

var value = "1"; // Set the value that you want to select
$("select option[value=" + value + "]")​​.attr("selected","selected")​​;​

http://jsfiddle.net/VU9BC/

【讨论】:

    【解决方案3】:

    只需根据值选择选项(使用属性选择器),然后像这样设置选定的属性就可以了:)

    按价值计算

    $( "select" ).change( displayVals );
    

    https://jsfiddle.net/haroonmind/quemz47o/1/

    【讨论】:

      猜你喜欢
      • 2013-10-18
      • 2011-04-03
      • 1970-01-01
      • 2020-08-08
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      • 2013-07-24
      相关资源
      最近更新 更多