2014-07-21 4 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

에 초점을 잃을 때 당신이 해고 될 흐림 이벤트를 사용할 수 있습니다 "또한 버튼의 비활성 상태를 설정하는 .prop() 대신 .attr()을 사용해야합니다 마우스로 입력 "? – Raptor

+0

"마우스로 입력하십시오"라는 말은 여러 번 양식을 채울 때 이전 레코드의 값이 있다는 것을 의미하며 필드에서 마우스로 클릭하면 드롭 다운의 형태로 이러한 레코드 표시가 브라우저 및 i의 선택 기록을 의미합니다 그 중 하나가 활성화되지 않습니다. –

답변

0

This answer를 수행합니다. changekeyup 이벤트와 함께 사용하십시오.

$(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

input 이벤트를 수신 비슷한 질문 제안이

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

죄송합니다.이 코드는 효과가 없습니다. –

관련 문제