2013-12-15 61 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

這不是一回事嗎?-) –

相關問題