单击时禁用按钮

时间:2010-06-24 17:48:04

标签: jquery

$(document).ready(function() {
     $("#FieldsetID").each(function() {
                 $('.Isubmit').attr('disabled', 'disabled');
            });
});

按钮显示为已禁用,但是当我点击它正在执行操作时?

是我做错了什么?谢谢

5 个答案:

答案 0 :(得分:4)

我认为你不能在一个独特的元素上运行.each()函数。它是独一无二的,因为您使用的是#id选择器。

你只需要这样做:

$(document).ready(function() {
     $('#FieldsetID .Isubmit').attr('disabled', 'disabled');
});

现在按钮不应该是可点击的。

答案 1 :(得分:2)

出于某种原因,当您单击禁用的提交按钮时,IE不会阻止事件冒泡。

我假设您在祖先上有一些其他事件处理程序因此被触发。

在该祖先的事件处理程序中,您似乎需要进行测试以查看是否已单击submit按钮以及是否已禁用该按钮。如果是这样,您将return false;阻止代码运行,或发生提交,或其他任何内容。

       // Not sure if this is the right event, but you get the idea
$( someSelector ).click(function( event ) {
    var $target  = $(event.target);
                  // check to see if the submit was clicked
                  //    and if it is disabled, and if so,
                  //    return false
    if( $target.is(':submit:disabled') ) {
        return false;
    }
});

答案 2 :(得分:1)

Altough未经测试,我认为当您按ID选择元素时,您不需要使用每个元素,因为它返回一个元素,当您选择使用类时,您必须使用每个元素,尝试在禁用选择器上使用每个元素见。

答案 3 :(得分:1)

http://forum.jquery.com/topic/disable-enable-button-in-form

尝试此操作即可启用它。再次

$(document).ready(function(){
    $("input[type=submit]").attr("disabled", "disabled");

    if ( $('#nome').is(":empty") ) {
        alert ("verdadeiro");
    }
    else {
        alert ("entrou no if");
        $("input[type=submit]").removeAttr("disabled");
    }

});

答案 4 :(得分:0)

最简单的方法是查找单击按钮是否已禁用类,如果它返回false,例如:

 $('.button1').click(function () {
 if ($(this).hasClass('disabled')) {
     return false;
 } else {
     //do whatever you want when element is clicked
 }

});