2013-05-05 5 views
1

jQuery의 if/else 문을 기반으로 버튼을 활성화 및 비활성화하는 데 문제가 있습니다. 여기서 문제는 텍스트 입력에 포커스가있을 때 버튼이 즉시 활성화된다는 것입니다. 코드는 if 문에서 매개 변수를 무시하는 것 같습니다. 분명히 이것은 내가하려고하는 응용 프로그램이 아니지만 작동하지 않는 사이트의 부분을 테스트하기 위해이 코드를 만들었습니다. 어떤 제안? 당신은 항상 함수 참조를 반환합니다 .val 대신 .val().val을 사용하는jQuery가 if 문의 일부로 작동하지 않음

- : 여기

는 자바 스크립트

$(document).ready(function() { 
    $(document).click(function() { 
     if ($('#type_here').val !== "") { 
      $('#test_button').prop('disabled', false); 
     } else { 
      $('#test_button').prop('disabled', true); 
     } 
    }).keyup(function() { 
     if ($('#type_here').val !== "") { 
      $('#test_button').prop('disabled', false); 
     } else { 
      $('#test_button').prop('disabled', true); 
     } 
    }); 
}); 

답변

3

이 시도되고 여기에 HTML

<input type="text" id="type_here" /> 
<input type="button" id="test_button" value="test" disabled/> 

입니다 함수의 결과가 아닙니다. 따라서 진술은 항상 사실입니다.

$(document).ready(function() { 
    $(document).click(function() { 
      $('#test_button').prop('disabled', $('#type_here').val() === ""); 
    }).keyup(function() { 
      $('#test_button').prop('disabled', $('#type_here').val() === ""); 
      }); 
}); 
+0

바이올린 데모 http://jsfiddle.net/bvMvR/ – PSL

+1

@SachinG 감사합니다. 나는 두 가지 대답을 줄 수 있었으면 좋겠다. Stack Overflow에 익숙하지 않아 upvote 할 수 없습니다. 만약 내가 할 수 있으면. :-) –

0
$('#type_here').on('keyup change',function(){ 
    if($(this).val().length == 0) 
    $('#test_button').prop('disabled', true); 
    else 
    $('#test_button').prop('disabled', false); 
}); 

이 같은 일을 할 것입니다. 처음에는 버튼을 사용할 수 없으며 무언가를 입력하면 활성화됩니다. 당신의 모두

demo