看看下面的示例代码:
<html>
<head>
<script type="text/javascript" src="jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("body").on('click', "#teste",function(){
$('#teste').append('<option id="pera">pera</option>')
$('#teste').show();
});
});
</script>
</head>
<body>
<select id="teste">
<option value="banana">banana</option>
<option value="laranja">laranja</option>
</select>
</body>
我这里的问题是,click事件仅在使用新值("pera")更新选择框之后才会显示选择框。我需要做的是首先用新值更新select,然后再显示它。有没有办法用jQuery做到这一点呢?提前谢谢,伙计们!
编辑:
好吧,让我试着解释清楚一点:每当你点击一个选择来显示选项时,它会自动显示(这很明显!)。我的问题是,我需要截取单击事件,更新select,并且仅在它显示select之后。但它会在更新前显示select (这是默认行为)。下面是正在发生的事情:
1)初始值选择: banana,laranja
2)用户点击。我想要的:显示香蕉,laranja和pera作为选项。结果:它在列表中显示了banana,laranja,只有在更新select之后才会显示它(如果我用fiebug检查html代码,pera选项就在那里!)。如果我在select中再次单击,pera选项会正常显示,正如上面的代码所说,它会在select中附加另一个pera选项,该选项仅在下一次单击时出现,依此类推。
发布于 2013-12-14 05:34:58
我有点困惑..。是否只想在页面加载时更新select?如果是这样的话,你可以这样做:
CSS:
#teste {
display: none;
}
JS:
$(function(){
$('#teste').append('<option id="pera">pera</option>').val("pera").show();
});
发布于 2013-12-14 05:35:31
我认为这可能就是您要搜索的内容:
使用值:
$('[name=options]').val( 3 );//To select Blue
要重置它,请使用以下命令:
$('[name=options]').val( '' );
使用文本:
$('[name=options] option').filter(function() {
return ($(this).text() == 'Blue'); //To select Blue
}).prop('selected', true);
链接:http://forum.jquery.com/topic/how-to-dynamically-select-option-in-dropdown-menu
发布于 2013-12-14 05:54:49
我认为您想要防止多次显示teste选项。
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<style>
#teste{
display: none;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
$(document).click(
function(){
if(!$('#teste').is(':visible')){
$('<option/>',{
'id' : 'pera',
'html' : 'pera',
'selected' : 'selected'
}).appendTo('#teste');
$('#teste').show('slow');
}
})
});
</script>
</head>
<body>
<select id="teste">
<option value="banana">banana</option>
<option value="laranja">laranja</option>
</select>
</body>
https://stackoverflow.com/questions/20576346
复制相似问题