【问题标题】:How to select from option menu in javascript如何从javascript中的选项菜单中进行选择
【发布时间】:2023-03-17 02:40:01
【问题描述】:

当我做某事时,我需要能够将选择菜单中的某些选项更改为默认(开始)值。

例如,当我声明它时,英语是默认值。

如何用代码而不是点击来改变它。

<form id="form1" name="form1" method="post" action="">
<select name="websites1" id="websites1" style="width:120px" tabindex="1">
    <option value="english" selected="selected"  title="images/us.gif">English</option>
    <option value="espanol" title="images/es.gif">Espanol</option>
    <option value="italian" title="images/it.gif">Italiano</option>
</select>
</form>

在我声明的正文标签中:

<script type="text/javascript">
$(document).ready(function() {
$("body select").msDropDown();
});
</script>

我正在使用这个SCRIPT

我已经尝试了以下所有示例,但没有一个对我有好处。

我还能做些什么来更改默认选择值。

【问题讨论】:

    标签: javascript select-menu


    【解决方案1】:

    使用selectedIndex。见this page。选择控件有一个options 属性,它基本上是一个选项元素数组。您选择的第一个元素是 options[0],english,所以:

    document.getElementById("websites1").selectedIndex = 0; //=> english
    

    您还可以使用以下命令默认选择第一个选项:

    document.getElementById("websites1").options[0]
           .defaultSelected = true; //=> english by default
    

    【讨论】:

    【解决方案2】:

    您可以使用selectedIndex 更改所选选项的索引(0 是第一个)

    document.getElementById("websites1").selectedIndex = 1; //espanol
    

    ,或者您可以使用value 更改值的文本(如果匹配,它会自动更改)。

    document.getElementById("websites1").value = 'espanol';
    

    【讨论】:

    【解决方案3】:

    他说

    你可以通过对象设置几乎所有的属性

    所以,只是从他在该页面上提供的文档示例中猜测......我会考虑适应这个:

    var oHandler = $('#comboboxid').msDropDown().data("dd");
    oHandler.size([true|false]);
    //Set or get  the size property
    

    .value 属性可能有效。因此,如果您将语言设置为意大利语,请尝试

    var oHandler = $('#comboboxid').msDropDown().data("dd");
    oHandler.value('italian');
    
    // Or maybe the way to do it is this:
    oHandler.set('value', 'italian');
    // Or maybe 'value' shouldn't be in single quotes
    //set property
    

    如果这不起作用,您可以尝试遍历所有属性,获取并比较每个索引处的值,当找到它时,将所选索引设置为该属性名称。

    var languageSelect = $('websites1');
    var oHandler = $('#websites1').msDropDown().data("dd");
    for(var index = 0; index < languageSelect.length; index++) {
        var option = oHandler.item([index]);
        if(option == 'italian') {
            oHandler.set("selectedIndex", index);
            break;
        }
    }
    

    其中一个应该可以工作。如果没有,你几乎只需要等待作者的回复。

    【讨论】:

      【解决方案4】:

      这对我有用,如文档中所述:

      $('#websites1').msDropDown().data('dd').set('selectedIndex',2);
      

      这将选择 italian ;)

      /编辑:

      请记住,@Patrick M 有一个更高级的方法,他在我发布我的方法之前发布了他的方法;)

      如果您像我一样遇到奇怪的 CSS 问题,请尝试以下未记录的内容:

      $('#websites1_msa_2').click(); // this will also select the italian
      

      如您所见,id 是由 $('#websites1_msa_2') 选择框的 id 加上 $('#websites1_msa_2') 索引生成的的选项。

      有点老套,但很有效;)

      所以你可以像这样定义一个 JavaScript-Function:

      var jQueryImageDD_selectByName = function(name) {
        var children = $('#websites2_child').children();
        for(var i=0;i<children.length;i++) {
          var label = children[i].getElementsByTagName('span')[0].innerHTML;
          if(label === name) {
            children[i].click()
          }
        }
      };
      

      然后像这样使用它:

      jQueryImageDD_selectByName('Italiano'); // will select Italiano :)
      

      【讨论】:

      • 有用的答案。谢谢。无法弄清楚如何访问 msDropDown 对象。
      • 很高兴我能帮助你@JamesPoulson
      【解决方案5】:

      工作选项(1. 销毁 msdropdown,2. 按值选择,3. 设置 msdropdown)

      将此代码放在js中的某处:

      jQuery.fn.extend({
          setValue: function(value) {
          var dd = $(this).msDropdown().data("dd");
          dd.destroy();
          $(this).val(value);
          $(this).msDropdown();
        }
      });
      

      设定值:

      $('#selectorOfmsDropDown').setValue('opt10');
      

      或者只是:

      $("#selector").msDropdown().data("dd").setIndexByValue(newvalue);
      

      【讨论】:

        猜你喜欢
        • 2011-02-18
        • 2017-05-03
        • 1970-01-01
        • 2022-06-18
        • 1970-01-01
        • 2014-04-16
        • 1970-01-01
        • 2011-05-25
        • 2023-03-29
        相关资源
        最近更新 更多