如何选择显示值而不是value选项

How do I select displayed value as opposed to VALUE options?

本文关键字:value 选项 显示 何选择 选择      更新时间:2023-09-26

我们有下面的SELECT组合框,它是用ajax和httphandler web服务(.ashx)动态填充的。

当SELECT组合框被动态填充时,它看起来像这样:

<select name="selectid" id="selectid">
<option value="">-Select an option-</option>
<option value="1">Test1</option>
<option value="2">Test2</option>
<option value="3">Test3</o4tion>
<option value="4">Test5</option>
<option value="5">Test6</option>
<option value="6">Test7</option>
  </select>

下面是js:

function getText() {
    $.ajax({
        url: 'rulings.ashx',
        dataType: 'json'
    })
    .done(function(textInfo) {
        $(textInfo).each(function(i, texts) {
            $('<option>').val(texts.dbtextID).text(texts.textToBeDisplayed).appendTo( $('#selectid') );

        })
    });
}

当我们从下拉列表中显示值时,它会显示VALUE选项,而不是显示的文本。

上面组合框中的示例,它显示1而不是Test1。

如何修改脚本以显示显示的文本而不是VALUE选项?

试试这个代码,把它放在里

$(document).ready(function(event){
    $("#selectid").on('change',function() {
        //alert($("#selectid option:selected").text());
        $('#summTextvalue').html($("#selectid option:selected").text());
    });
})

jQuery中的ON方法可以将事件绑定到动态创建的元素。

或者你也可以做一些类似的事情

function _bindEvent()
{
    $("#selectid").on('change',function() {
        alert($("#selectid option:selected").text());
    });
}

并从AJAX done方法调用_bindEvent()

尝试获取文本,而不是值。

$('#selectid').change(function(){
   var selectedVal=$(this).val();
   alert($(this).children("option[value='"+selectedVal+"']").text());
});