当点击一个按钮时,我希望将选择列表中的选定选项更改为所点击的按钮对应的选项。
这是我目前拥有的:jsfiddle
$('#btnCityAuckland').click(function(){
$('#City').val('A');
})
我确实有一些jQuery,但可能还远远不够正确,因为它不可能那么简单。
当点击一个按钮时,我希望将选择列表中的选定选项更改为所点击的按钮对应的选项。
这是我目前拥有的:jsfiddle
$('#btnCityAuckland').click(function(){
$('#City').val('A');
})
我确实有一些jQuery,但可能还远远不够正确,因为它不可能那么简单。
$('#btnAuckland').click(function(){
$('#City').val('A').trigger('change');
})
显然,你只需在设置值后调用.trigger()
方法即可。
示例:http://jsfiddle.net/8RUBj/11/
编辑
而且,最好使用data
属性来设置值和类别,然后可以一次性完成所有按钮的操作。
$('.select-change').click(function(){
$('#City').val($(this).data('val')).trigger('change');
})
你的代码是正确的,只是你打错了 $('#btnCityAuckland')
,它的确是:
$('#btnAuckland')
工作中演示
您还可以根据单击的按钮自动选择选项,而不是硬编码ID,像这样:
$('div > a').click(function(){ //click handler for all city buttons
$("#City option:contains('"+$(this).text()+"')").attr("selected",true);
$("#City").selectmenu('refresh', true); //Refresh to show name on select
})
这是一个涉及IT技术的示例
。如果您不使用jQuery Mobile,您的代码将按原样工作。使用jQuery Mobile,您可以通过调用以下方式使伪选择器刷新:.selectmenu("refresh")
:
$('div[data-role="controlgroup"] a').click(function(){
$('#City').val( $(this).text().charAt(0) ).selectmenu("refresh");
});
演示:http://jsfiddle.net/8RUBj/18/
请注意,您不需要为每个按钮分配单独的点击处理程序:出于演示目的,我展示了一种相当笨拙的方法,使代码更加通用,以便在不更改HTML的情况下工作,但是您可以添加data-
属性或其他内容来指示与每个值相关联的值。