如何在处理/提交时禁用/只读表单?

时间:2011-12-18 16:49:01

标签: javascript html forms jquery

我正在使用AJAX提交表单。我使用以下代码通过AJAX提交表单。

jQuery('form.AjaxForm').submit( function() {        
        $.ajax({
            url     : $(this).attr('action'),
            type    : $(this).attr('method'),
            dataType: 'json',
            data    : $(this).serialize(),
            success : function( data ) {
                        for(var id in data) {   
                          jQuery('#' + id).html( data[id] );                                
                        }
                      }
        });
        return false;
    });

问题:

我想在服务器提交后处理表单数据时禁用/ readonly。提交后表格应正常或有任何错误。有时用户按下提交按钮不止一次,我们在数据库中收到不需要的重复条目。

有什么想法吗?

由于

3 个答案:

答案 0 :(得分:1)

点击后会禁用提交按钮。

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

答案 1 :(得分:1)

function disable() {
    return false;
}

// Disable form
jQuery('form.AjaxForm').bind( "submit", disable );

// Enable form
jQuery('form.AjaxForm').unbind( "submit", disable );

或者如果您想阻止输入被修改:

// Disable
jQuery('form.AjaxForm input').each( function() {
    jQuery( this ).attr( "disabled", "disabled" );
});

// Enable
jQuery('form.AjaxForm input').each( function() {
    jQuery( this ).attr( "disabled", "" );
});

答案 2 :(得分:1)

在提交处理程序中$.ajax调用之前禁用提交按钮:

$('#yoursubmit').attr('disabled', 'disabled');

并在$.ajax调用的成功/错误处理程序中再次启用它:

$('#yoursubmit').attr('disabled', '');