2014-07-21 25 views
0

我的按鈕只有在通過鍵入輸入字段中的文本時才啓用,並且當我用瀏覽器歷史記錄輸入文本時,意味着當我點擊該字段時,它顯示前一個記錄,並且我用鼠標輸入,然後按鈕未啓用。如何使用瀏覽器histroy在文本字段中輸入文本時啓用按鈕?

這是我的代碼:

<script type="text/javascript"> 
    $(function() { 
     $(":text").keyup(check_submit).each(function() { 
      check_submit(); 
     }); 
    }); 

    function check_submit() { 
     $('input[type="submit"]').attr('disabled','disabled'); 
    if ($(this).val().length == '') { 
     $(":submit").attr("disabled", true); 
     } else { 
     $(":submit").removeAttr("disabled"); 
     } 
    }  
</script> 

任何幫助嗎? 感謝

+1

你可以使用模糊事件將被解僱時,文本框失去焦點 –

+0

你是什麼意思「用鼠標輸入「? – Raptor

+0

「用鼠標輸入」意味着當我們填寫表格幾次時,就會有先前記錄的值,當我們用鼠標點擊字段時,這些記錄以下拉的形式顯示意味着瀏覽器的歷史和我選擇的其中一個然後形成未啓用。 –

回答

0

This answer到類似的問題,提出收聽一個input事件。嘗試使用該事件以及changekeyup事件。你也應該使用.prop(),而不是.attr()設置按鈕的禁用狀態:

$(function() { 
    $(":text").on('keyup input change', check_submit).each(check_submit); 
}); 

function check_submit() { 
    var $this = $(this); 
    $(":submit").prop("disabled", function(){ 
     return !$this.val().length; 
    }); 
} 

Demo fiddle

+0

當我點擊字段然後按鈕啓用。我沒有任何方法,只要我輸入值與鼠標按鈕應該啓用? –

+0

任何感謝您的幫助 –

+0

@TaleebAhmad根據[這個答案](http://stackoverflow.com/a/8548572/2049063)你可以嘗試使用'input'事件 –

0

做這個

$(":text").on("change", function() { 
    if ($(this).val().length == 0) { 
     $(":submit").attr('disabled','disabled'); 
     $(":submit").attr("disabled", "true"); 
    } else { 
     $(":submit").removeAttr("disabled"); 
    } 
}); 
+0

對不起,這段代碼沒有效果 –

相關問題