2015-10-05 182 views
0

也許可以在這裏有人幫助我。我有這種情況:一個選擇框與severa選項,我想改變選擇的選項,取決於爲用戶在文本框中引入的選項值。到目前爲止,我沒有獲得成功,我嘗試了一切,但總是在我選擇了它仍然被選中並且不想失去的東西之後。我的選擇框是這樣在選擇框中選擇並取消選擇多個選項

<select id="slt-np" class="form-control"> 
    <option selected="" value="0">Selects one</option> 
    <option value="1">one</option> 
    <option value="2">two</option> 
    <option value="3">three</option> 
    <option value="4">four</option> 
</select> 

和jQuery的處理程序代碼如下所示:

$("#textbox").keypress(function(e) { 
    if (e.which == 13) { 
     var selectedoption = $("#cont").children("#slt");//This is to take the select 
     $(selectedoption).find("option[value='"+$("#textbox").val()+"']").prop("selected",true); //select the option with value in textbox 
     if ($(selectedoption).find("option[value='" + $("#npip").val() + "']").prop("selected") == false) { //if this option have been not selected 
      $(selectedoption).find("option[value='" + $("#npip").val() + "']").prop("selected", true); //I select it now 
     } else { 
      $(selectedoption).find("option[value='" + $("#npip").val() + "']").prop("selected", false); //if was selected I deselect it 
    } 
+0

你可以把這個添加到jsfiddle嗎? – deepakb

+0

用戶 - 他們是否應該輸入文本或數值(即他們將輸入「1」還是「1」) – Taleeb

回答

3

我會寫這樣的事:

$("#textbox").keypress(function(e) { 
    if (e.which == 13) { 
     var textin = $("#textbox").val(); 
     $("#slt-np").val(textin); 
    } 
}); 

這將檢查哪些用戶撰寫並找到相同的文字作爲所選選項的值。 如果用戶輸入的是選項的文本:

$("#textbox").keypress(function(e) { 
    if (e.which == 13) { 
     var textin = $("#textbox").val(); 
     var optionsel = $('#slt-np').filter(function() { return $(this).html() == textin; }).val(); 
     $('#slt-np').val(optionsel); 
    } 
}); 
+0

使用上面的示例工作小提琴:http://jsfiddle.net/fjmj8oyf/ – VladNeacsu

+1

您錯過了$( '#slt-np')。val()...它應該是這樣的:$('#slt-np')。val($('#slt-np option')。filter(function(){return $ (this).html()== $(「#textbox」)。val();})。val()); – Taleeb

+0

@Taleeb沒有測試它。編輯答案,謝謝你的提示! –

0

你應該只使用:

$('#slt-np').val('Your value'); 

,它會選擇你的價值。

相關問題