0

我的表单中有一个带有 id 的复选框terms和一个带有 class 的提交按钮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 新手,所以也欢迎任何简化和修复。

4

1 回答 1

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'));
});
于 2010-03-26T16:16:29.057 回答