jQuery使按钮无效为什么不起作用?

时间:2022-06-01 12:45:45
上代码:

        <form onsubmit="return CheckRegForm();" action="/wubi/register.aspx?action=register" id="regForm" method="post">
            ...
            <div class="indent mt10"><input type="submit" id="btnReg" value="提交注册" /> </div>


    /*注册*/
    function CheckRegForm() {
        var name = $.trim($('#txtName').val());
        var pwd = $.trim($('#txtPassword').val());
        var rePwd = $.trim($('#txtRePassword').val());
        var email = $.trim($('#txtEmail').val());
        if (name == '') {
            ShowErr2('用户名不可为空');
            $('#txtName').focus();
            return false;
        }
        if (email == '') {
            ShowErr2('Email不可为空');
            $('#txtEmail').focus();
            return false;
        }
        if (!/.{2,16}@.+\..+/.test(email)) {
            ShowErr2('Email格式不正确');
            $('#txtEmail').focus();
            return false;
        }
        if (pwd == '') {
            ShowErr2('密码不可为空');
            $('#txtPassword').focus();
            return false;
        }
        if (rePwd == '') {
            ShowErr2('重复密码不可为空');
            $('#txtRePassword').focus();
            return false;
        }
        if (rePwd != pwd) {
            ShowErr2('两次输入密码不一致');
            $('#txtRePassword').focus();
            return false;
        }
        $('#btnReg').attr('disabled', 'disabled').val('注册中...');
        $.ajax({
          //********************
        });
        $('#btnReg').attr('disabled', false).val('提交注册');
        return false;
    }



但这个按钮一直都是可用状态,请问是什么原因?

12 个解决方案

#1


因为你自己写的disabled false。。。

#2


 $('#btnReg').attr('disabled', 'disabled').val('注册中...');
这句话应该是没问题的 。
你看看是不是ajax太快了 。

#3


最后四行一步步调试下,应该找出原因

#4


display:true
document.getElementById('btnReg').display=true;
document.getElementById('btnReg').value='提交注册';

#5


 $('#btnReg').attr('disabled', true).val('提交注册');试试

#6


$('#btnReg').attr('disabled', 'disabled').val('注册中...');
这句话下面弄个alert暂停下 然后看看

#7


先设置 了禁用,然后异步,再往下面执行了,再启用了。当然就启用了。。
6楼说的,alert一下就看出效果了吧?

#8


 $('#btnReg').attr('disabled', 'disabled').val('注册中...');
        $.ajax({
          //********************
        });
        $('#btnReg').attr('disabled', false).val('提交注册');
        return false;
    就是这几行有点问题,你单步调试下。

#9


$('#btnReg').attr('disabled', false).val('提交注册');  false改成true 或者是 'disabled' 就可以了

#10


这一行要放在
$.ajax({
   success:function(){
      $('#btnReg').attr('disabled', false).val('提交注册');
   }
})

#11


或者给$.ajax的参数加一个async:false的值:

$.ajax({
    async:false,
    //other options
})
$('#btnReg').attr('disabled', false).val('提交注册');

#12


非常感谢了,太感动了…………
10楼11楼的解决方案。
全部给分!

#1


因为你自己写的disabled false。。。

#2


 $('#btnReg').attr('disabled', 'disabled').val('注册中...');
这句话应该是没问题的 。
你看看是不是ajax太快了 。

#3


最后四行一步步调试下,应该找出原因

#4


display:true
document.getElementById('btnReg').display=true;
document.getElementById('btnReg').value='提交注册';

#5


 $('#btnReg').attr('disabled', true).val('提交注册');试试

#6


$('#btnReg').attr('disabled', 'disabled').val('注册中...');
这句话下面弄个alert暂停下 然后看看

#7


先设置 了禁用,然后异步,再往下面执行了,再启用了。当然就启用了。。
6楼说的,alert一下就看出效果了吧?

#8


 $('#btnReg').attr('disabled', 'disabled').val('注册中...');
        $.ajax({
          //********************
        });
        $('#btnReg').attr('disabled', false).val('提交注册');
        return false;
    就是这几行有点问题,你单步调试下。

#9


$('#btnReg').attr('disabled', false).val('提交注册');  false改成true 或者是 'disabled' 就可以了

#10


这一行要放在
$.ajax({
   success:function(){
      $('#btnReg').attr('disabled', false).val('提交注册');
   }
})

#11


或者给$.ajax的参数加一个async:false的值:

$.ajax({
    async:false,
    //other options
})
$('#btnReg').attr('disabled', false).val('提交注册');

#12


非常感谢了,太感动了…………
10楼11楼的解决方案。
全部给分!