JQuery:根据是否同意条款切换提交按钮

时间:2010-03-26 16:10:10

标签: javascript jquery forms submit togglebutton

我有一个标识为terms的复选框,我的表单中有一个提交按钮,其中包含班级registration。我希望最初禁用提交按钮,然后在用户切换打开和关闭条目时打开和关闭复选框。我还希望在单击提交按钮时弹出确认对话框,如果确认,将再次禁用提交按钮(以防止重复点击)。我已经完成了最后一部分和第一部分工作(我认为),但我无法弄清楚如何让切换工作。这就是我到目前为止所做的:

$(document).ready(function() {

    // Disable submit button initially
    $('form.registration input[type=submit]').attr('disabled', 'disabled');

    // Toggle submit button whenever the terms are accepted or rejected
    $('#terms').change(function() {

        if($('#terms:checked').val() !== null)
            $('input[type=submit]', this).attr('disabled', '');
        else
            $('input[type=submit]', this).attr('disabled', 'disabled');

    });

    // Ask for confirmation on submit and disable submit button if ok
    $('form.registration').submit(function() {

        if(confirm('Have you looked over your registration? Is everything correct?')) {
            $('input[type=submit]', this).attr('disabled', 'disabled');
            return true;
        }

        return false;

    });

});

有人可以帮我做这项工作吗?我现在是一个完整的JQuery新手,因此欢迎任何简化和修复。

1 个答案:

答案 0 :(得分:3)

这部分:

$('#terms').change(function() {
    if($('#terms:checked').val() !== null)
        $('input[type=submit]', this).attr('disabled', '');
    else
        $('input[type=submit]', this).attr('disabled', 'disabled');
});

只会在#terms元素(即, this部分)中查找提交按钮。 我想这就是你想要的:

$('#terms').change(function() {
   $('input[type=submit]').attr('disabled', !$(this).is(':checked'));
});