下拉设置选中状态并启用/禁用提交按钮

时间:2013-05-16 13:09:32

标签: jquery html css

我昨天发布了这个问题: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/

谢谢!

编辑:我的目标, enter image description here

4 个答案:

答案 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
});

JSFiddle example

答案 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')));
});