2014-01-06 2 views
0

.prop()를 if 문에 사용하면 항상 false를 반환하는 이유를 이해하려고합니다. 내 목표는 "#manualOverrideNo"라디오 버튼이 선택된 경우에만 JS가 실행되도록하는 것입니다. 누군가가 나를 계몽 할 수 있다면 매우 감사 할 것입니다. 다시.prop if 문과 JQuery

if($('#manualOverrideNo').prop('checked')) { 
    //Code For Auto-complete 

      //Quantity for Posts 
      $('#footage').bind('keypress keydown keyup change', function(){ 
       var footage = parseFloat($(':input[name="footage"]').val(),10); 
       var total = ''; 
       if(!isNaN(footage)){ 
       total = Math.ceil(footage /7); 
       } 
     $(':input[name="postQuantity"]').val(total.toString()); 
      }); 
} 

감사 :

HTML : 수동 오버라이드 (override)하는 :

<label>No<input type="radio" name="manualOverride" 
id="manualOverrideNo" value="no" checked /></label> 

<label>Yes<input type="radio" name="manualOverride" 
id="manualOverrideYes" value="yes" /></label> 

<label>Footage:<input type="number" id="footage" 
name="footage" value="" /></label> 

<label>Post Quantity:<input type="postQuantity" 

name="postQuantity" id="postQuantity" value="" /></label> 

JS뿐만 아니라 여기 - http://jsfiddle.net/gv0029/xEfw4/1/ - 여기에 코드 조각의 바이올린입니다! 모두 내 영웅이야!

+0

몇 가지 팁 :'parseFloat'는 기수를 사용하지 않습니다. '.toString'은 불필요합니다. 왜냐하면'val()'이 그렇게 할 것이기 때문입니다. 새로운 버전의 jQuery ditch bind를 사용한다면'on'을 사용하십시오. – elclanrs

+1

jsfiddle의 코드가 정상적으로 작동하는 것 같습니다. 무엇이 잘못 될지 더 자세히 설명해 주시겠습니까? – Pointy

+0

당신은 jsfiddle에서 attr을 사용하고 있습니다. –

답변

1

나는 바이올린을 변경했습니다 그리고 당신도, 당신은 작업을 한 후 값을 확인해야합니다, 바이올린에 .prop 대신 .attr의이 필요 지금

http://jsfiddle.net/xEfw4/5/

작동합니다 페이지가로드 될 때가 아니라 페이지가 발생했습니다.

//Code For Auto-complete 
//Quantity for Posts 
$('#footage').bind('keypress keydown keyup change', function() 
{ 
    if($('#manualOverrideNo').prop('checked')) 
    { 
     var footage = parseFloat($(':input[name="footage"]').val(),10); 
     var total = ''; 
     if(!isNaN(footage)) 
     { 
      total = Math.ceil(footage /7); 
     } 
     $(':input[name="postQuantity"]').val(total.toString()); 
    } 
}); 

http://api.jquery.com/prop/ 속성과 속성의 차이점에 대한 정보가 있습니다.

+0

OOOOOOhh. 좋아요, 그 말이 많은 의미가 있습니다. 감사! – mario