2012-03-10 241 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/