【问题标题】:Change select when use clicks on table使用点击表格时更改选择
【发布时间】:2012-04-02 04:39:42
【问题描述】:

我需要更改下拉选择中的选定值。

默认情况下,它在 VIC 上被选中,但是当我点击新南威尔士州的一个地址时,我想让下拉菜单在下拉菜单中选择新南威尔士州,唯一的问题是值是 1-7,而不是州名.

我尝试了以下

$("select").val('NSW').change();

还有更多,包括触发器等等

【问题讨论】:

    标签: jquery forms select


    【解决方案1】:

    使用此功能。传递两个参数,第一个组合名称和第二个要选择的值。当你点击 NSW 地址时调用这个函数

    function setSelectedIndexByTextValue(comboName, comboValue) {
        var tComboName = document.getElementById(comboName);
        for (i = 0; i < tComboName.options.length; i++) {
            if (parseInt(tComboName.options[i].text) == comboValue) {
                tComboName.options[i].selected = true;
                break;
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      好的,我假设您的 HTML 如下所示:

      Please select a state:
      <ul>
          <li>New York</li>
          <li>Pennsylvania</li>
          <li>Ohio</li>
          <li>California</li>
          <li>Washington</li>
          <li>Alaska</li>
          <li>Hawaii</li>
      </ul>
      
      <select name="state">
          <option value="1">New York</option>
          <option value="2">Pennsylvania</option>
          <option value="3">Ohio</option>
          <option value="4">California</option>
          <option value="5">Washington</option>
          <option value="6">Alaska</option>
          <option value="7">Hawaii</option>
      </select>
      

      ​点击加州li时,要选择第四个选项吗?很简单:只需创建一个将索引映射到名称的简单数组:

      var map = [null, "New York", "Pennsylvania", "Ohio", "California",
                "Washington", "Alaska", "Hawaii"];
      

      然后,使用$.inArray函数查找对应某个状态的索引:

      var index = $.inArray($(this).html(), map);
      

      然后,将 select 设置为带有您刚刚找到的索引的选项:

      $("select").val(index);
      

      jsFiddle

      【讨论】:

      • 好的,但是如果它们不在数组中怎么办
      猜你喜欢
      • 2014-10-17
      • 1970-01-01
      • 2014-10-30
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多