我在点击链接时尝试更改下拉列表的值。我已经完成了尽职调查,并相信这可以通过'道具'来完成..但我不确定如何使用道具与我的特定例子。我到目前为止使用的代码是......:
var $select = $('#finder-3--16');
$('a[href="#yearselect"]').click(function () {
$select.val( $(this).data('select') );
});
单击链接时,它会设置值但不会更改它(因此不会触发绑定到onchange的事件)。链接的一个例子可以在下面看到......:
<a href="#yearselect" data-select="125921">2009</a>
我相信我必须以某种方式返回该值,然后使用它,但不知道该怎么做。任何帮助将不胜感激!
onchange功能可以在这里看到:
onChange: function(event)
{
var select = Event.element(event);
var parentId = select.value;
var dropdownId = 0;
/* should load next element's options only if current is not the last one */
for (var i = 0; i < this.selects.length; i++){
if (this.selects[i].id == select.id && i != this.selects.length-1){
var selectToReload = this.selects[i + 1];
if (selectToReload){
dropdownId = selectToReload.id.substr(selectToReload.id.search('--') + 2);
}
break;
}
}
}
谢谢!
答案 0 :(得分:1)
如果您询问与select
更改绑定的事件,请尝试
$select.val( $(this).data('select') ).change();
或.trigger('change')
它将触发更改事件,该事件将调用您的更改回调..
答案 1 :(得分:1)
试试这个:
var $select = $('#finder-3--16');
$('a[href="#yearselect"]').click(function () {
$select.val( $(this).attr('data-select') );
});
答案 2 :(得分:1)
更新值
后触发更改事件var $select = $('#finder-3--16');
$('a[href="#yearselect"]').click(function () {
$select.val( $(this).data('select') );
$select.trigger('change');
});
答案 3 :(得分:1)
注意:此更新已触发更改事件。
我创造了一个小提示,向你展示一个有效的例子。
简而言之,您需要的是:
$(function() {
$('a').on('click',function(event) {
var txt = $(this).text();
$('#mySelect option')
.filter(function() { return $.trim( $(this).text() ) == txt; })
.attr('selected',true).change();
})
});
答案 4 :(得分:1)
听起来您没有在value
标记上定义<option>
属性。这样做:
<select id="finder-3--16">
<option value="125921">whatever label you want</option>
</select>
现在你现有的jQuery应该可以工作。
看到这个小提琴:http://jsfiddle.net/X7SVe/