是否有更简洁的jQuery语法来禁用表单提交上的提交按钮?

时间:2011-10-01 20:56:53

标签: jquery

我提交以下代码以在提交表单时禁用提交按钮:

$('#myform').submit(function(){
    $('input[type=submit]', this).attr('disabled', 'disabled');
});

是否有更简洁的语法?

4 个答案:

答案 0 :(得分:2)

jQuery disable plugin

$('input').disable(); //disables
$('input').enable(); //enables
$('input').toggleDisabled(); //toggles
$('input').toggleEnabled(); //toggles
$('input').toggleDisabled(true); //disables
$('input').toggleEnabled(true); //enables

或者,如果您不想要插件,可以使用:

jQuery.fn.disable = function() {
    $( this ).prop( "disabled", true );
};

$('input[type=submit]', this).disable();

答案 1 :(得分:2)

好吧,首先我给它一个ID,否则你将禁用每个提交按钮,这可能是也可能不是你想要的。

除此之外,that's about it除非您想使用disable plugin

答案 2 :(得分:1)

$('#myform').submit(function(){
    $('input[type=submit]', this).prop('disabled', true);
});

它不能比这更简洁。它足够干净。我使用$.prop()更改了$.attr(),因为这是您应该用来设置和获取值的内容,这会更改元素的状态,但不会更改属性本身。

来自文档:

  

.prop()方法应该用于设置已禁用和已检查而不是.attr()方法。

答案 3 :(得分:0)

一个清洁版可以是这样的:

$(this).find(':submit').attr('disabled', true);

$(this).find(':submit').prop('disabled', true);