2013-12-15 60 views
2

我们有以下利用ajax和httphandler web服务(.ashx)动态填充的SELECT组合框。如何选择显示值而不是VALUE选项?

当动态填充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')); 


     }) 
    }); 
} 

当我们显示从下拉列表中值,其显示值的选项,而不是的显示文字。

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

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

+0

http://stackoverflow.com/questions/196684/jquery-get-specific-option-tag-text –

+0

你到底要干什么?取文本而不是值onChange? –

+0

@harsha, 是的,正好。 我们有一个摘要页面来显示用户的选择。 在该摘要页面上,如果用户选择VALUE选项1,我们希望显示Text1而不是值选项1. 希望这个更清楚。 –

回答

2

试试这个代码,只需将其放在

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

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

,或者你也可以这样做

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

,并从你的AJAX实现方法

+0

我认为,为了您的解决方案的工作,它需要与我发布的脚本集成在一起,这就是我遇到问题的地方。 –

+0

第一种解决方案似乎是在警报上显示文本。这很棒,但我宁愿让它显示在摘要部分。 所以,相反这样的: '

名称:

',我喜欢你的解决方案的价值。有任何想法吗? –

+0

@ChidiOkeh:看看修改后的答案 –

0

调用_bindEvent()尝试使用此方法获得的文字,而不是价值。

$('#selectid').change(function(){ 

    var selectedVal=$(this).val(); 
    alert($(this).children("option[value='"+selectedVal+"']").text()); 

}); 
+0

这不是一回事吗?-) –

相关问题