2013-12-11 204 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()