2011-12-11 65 views
0

此刻我使用此代碼來禁用提交按鈕,直到填寫表單中的所有輸入字段。 Altough我想補充的KEYUP刷新,所以它會爲你在過去的輸入框輸入完畢後,儘快啓用該按鈕...jQuery和禁用表單提交

function buttonState(){ 
    $("input").each(function(){ 
     $('#submit').attr('disabled', 'disabled'); 
     if($(this).val() == "") return false; 
     $('#submit').attr('disabled', ''); 
    }) 
} 

$(function(){ 
    $('#submit').attr('disabled', 'disabled'); 
    $('input').change(buttonState); 
}) 
+3

請儘量先做到這一點。這並不困難。顯示一些興趣。 – karim79

+0

感謝您的出色建議,如果這對我來說不成問題,我不會發帖。 – ProDraz

+0

該函數不是.onkeyup(fn),它只是普通的.keyup(fn)。查看jquery文檔。 http://api.jquery.com/keyup/ – danludwig

回答

1

編輯

$(function(){ 
    function buttonState(){ 
     var isValid = true; 
     $("input").each(function(){ 
      if($(this).val() == "") isValid = false; 
     }); 
     if (isValid) $('#submit').attr('disabled', ''); 
     else $('#submit').attr('disabled', 'disabled'); 
    } 
    $('#submit').attr('disabled', 'disabled'); 
    $('input').on('change keyup', buttonState); 
}) 
+0

沒有爲一些reasson工作:S – ProDraz

+0

你使用的是什麼版本的jquery? – danludwig

+0

既然你已經引入了'isValid'標誌,爲什麼不把''each()'循環的禁止移出?循環後只需啓用/禁用一次。 – nnnnnn

0

你試過

$('#submit').removeAttr('disabled'); 

,而不是

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

不知道這是否重要,但可能會使標記更清晰。

你說'沒有'爲一些reasson'工作......你能更精確嗎?它是以任一方式提交,還是按鈕未啓用狀態?

0

AFAIK我這樣做是爲了設置表單元素上禁用屬性:

$('#submit').attr('disabled',true); //to set it disabled 
$('#submit').attr('disabled',false); // to release the disabled attr