2013-12-11 208 views
0

我试图在用户提交表单后禁用提交按钮。在提交后禁用提交按钮

,这里是我的js

$('.dDisable').click(function(){ 
var value = $('.chars').val(); 
var chars = value.length; 

if (chars<10){ 
     $(".dDisable").submit(function(e){ 
      $('.chars').css('border','1px solid red'); 
      return false; 
     }); 
    } 
else{ 
    $('.dDisable').one('submit', function() { 
     $(this).find('input[type="submit"]').attr('disabled','disabled'); 
     $(this).css('opacity','0.5'); 
     }); 
    } 
}); 

出于某种原因,当用户点击提交按钮textarea的(.chars)得到一个红色边框,然后整个窗体(.dDisable)获得的0.5

不透明

这里是http://jsfiddle.net/#&togetherjs=UlcR8bJwIM

由于某种原因,它似乎是工作,但形式没有得到发送。

+2

将是巨大的,如果你能创造小提琴 –

+0

如果你正在使用jQuery 1.6或更高版本,检查出的道具()方法,而不是设置为“禁用”属性。 http://api.jquery.com/prop/ – 12hys

回答

0

试试这个:

$(document).ready(function() { 
    $(".submitBtn").click(function() { 
     $('input[type="submit"]').prop('disabled',true); 
     $('#yourFormId').submit(); 
     }); 
    }); 

$(document).ready(function() { 
    $(".submitBtn").click(function() { 
     $(".submitBtn").attr("disabled", true); 
     $('#yourFormId').submit(); 
     }); 
    }); 
+0

感谢您的建议。我在它之前添加了character.lenght检查,它像魅力一样工作。 – Ando

0

如果我是正确的,你正在尝试做一些验证之前提交。

原因文本框获得红色边框,下面的代码上点击提交按钮

$(".dDisable").submit(function(e){ 
      $('.chars').css('border','1px solid red'); 
      return false; 
     }); 

由于上面的代码是“如果”条件,并获得通过,那么你尝试禁用按钮没有执行。因为你禁用它在“其他”部分如下,

else{ 
    $('.dDisable').one('submit', function() { 
     $(this).find('input[type="submit"]').attr('disabled','disabled'); 
     $(this).css('opacity','0.5'); 
     }); 
    } 
} 

注意:您必须重构你的代码很像, 你必须写为$(this).attr('disabled','disabled');代替$(this).find('input[type="submit"]').attr('disabled','disabled');

0

添加这在提交事件

$(document).ready(function() { 
    $("#yourFormId").submit(function() { 
     $(".submitBtn").attr("disabled", true); 
     return true; 
    }); 
}); 

HTML

<form method='post'> 
    <button type='submit'>Send</button> 
</form> 

的JavaScript

$('form').submit(function() { 
    $(this).find("button[type='submit']").prop('disabled',true); 
}); 

你可以看到不同的B/W .attr() vs .prop()