我昨天发布了这个问题:jQuery live check input changes - 我得到了答案。
现在我很好奇,如果我有下拉菜单,复选框和单选按钮,我怎么能跟踪他们的变化。
这是国家/地区的当前代码:
<select id="country-list" name="countries">
<option value="xx" selected="">Worldwide</option>
<option value="in">India</option>
<option value="il">Israel</option>
<option value="ru">Russia</option>
<option value="us">United States</option>
</select>
剩下的就在这个jsfiddle中:http://jsfiddle.net/XeG5u/
谢谢!
编辑:我的目标,答案 0 :(得分:1)
好像你正在做很多事情来启用那个按钮..我觉得你可以用一个简单的.change()
事件处理大部分事情。
$("#country-list").change(function() {
if (this.value == "xx") {
$("#submit-data").prop("disabled", true);
} else {
$("#submit-data").prop("disabled", false);
}
});
演示:http://jsfiddle.net/tymeJV/XeG5u/1/
每次下拉列表更改时,此事件都会触发。您可以存储所选值(在此函数中可以访问this.value
)并执行所需的逻辑。
答案 1 :(得分:0)
为此你可以使用jQuery的.on('change', ...)
事件处理程序:
$('body').on('change', 'select#country-list', function() {
// When the selected option is changed, this function will be entered
});
答案 2 :(得分:0)
我刚刚解决了自己的问题。相当简单,使用find()并在循环中进行比较之前获取默认值!谢谢大家!
这就是诀窍:
var current = $("#country-list option[selected]").val();
然后执行If() - 声明......这就是多么简单......
答案 3 :(得分:0)
我会大大简化这个:
var button = $('#submit-data');
$('#country-list').data('selected', $("#country-list option:selected").val()).change(function () {
button.prop('disabled', ($(this).find('option:selected').val() === $(this).data('selected')));
});