2012-03-10 239 views
1

我有一個文本框和一個選擇框。更改選擇框的值文本

<input type="text" /> 

<select> 
<option value=1>Test1</option> 
<option value=2>Test2</option> 
</select> 

現在我想要當用戶在文本框中鍵入任何內容,以更改value = 2文本。

我試過這個,但看起來不行。

$(document).ready(function() { 
$("#textbox").keyup(function() { 




    $("select#sync[value='2']").text($(this).val()); 
}); 

});

回答

3

除了事實,你沒有給你任何元素的ID中,問題是您需要訪問<option>元素(該值爲2 - 沒有<select value=2>)。此外,ID是唯一的,因此,使用select#sync是(應該是)一樣#sync

$("#sync option[value='2']") 
0

你可以嘗試

$("#sync").val($(this).val()); 

提供的用戶類型只有在範圍內的值

DEMO

2
<input type="text" id="textbox" /> 
<select> 
    <option value="1">Test1</option> 
    <option value="2">Test2</option> 
</select>​ 

$(document).ready(function() { 
    $("#textbox").keyup(function() { 
     $("select option[value='2']").text($(this).val()); 
    });​ 
}); 

http://jsfiddle.net/gxaWE/

0
$("#text_box").keyup(function() { 
$("#sync option[value='2']").text($(this).val()); 
}); 

這裏是小提琴顯示它的工作: http://jsfiddle.net/bRw8Z/1/

它改變選擇選項編號2文本。那是你想要的嗎?

0

我在這裏看到了幾個問題:

  1. 它沒有意義設置<select>元素的innerText;您想要設置其值,
  2. #textbox選擇器實際上不會選擇任何內容。
  3. 如果您的輸入與<option>value屬性不完全匹配,則會選擇第一個<option>

如果該片段的value屬性與文本輸入的值匹配,此片段將選擇<option>

$(document).ready(function() { 
    $("input").keyup(function() { 
     var $select = $("select"), 
      value = $(this).val(); 
     if($select.find('option[value="' + value + '"]').length){ 
      $select.val(value); 
     } 
    }); 
});​ 

http://jsfiddle.net/2XxRQ/1/