2014-05-20 2 views
1

Я просматриваю книгу на JQuery, натолкнулся на упражнение, но он не работает, проверял некоторые связанные проблемы с stackoverflow и перекрестно проверял, что я сделал до сих пор, это почти то же самое но мой не работает, может кто-то, пожалуйста, предложить решение? Вот код:отключить флажок с помощью jquery не работает

<form action="#"> 
Billing Address same as Shipping Address: 
<input type="checkbox" name="billingAddress" id="billingAddress" /> 
<br /> 
<br /> 
Street Address: 
<input class="baddr" type="text" name="street" id="street" /> 
<br /> 
<br /> 
City: 
<input class="baddr" type="text" name="city" id="city" /> 
</form> 

<script type="text/jscript"> 
$(document).ready(function() { 
    $("#billingAddress").click(function() { 
     if ($("#billingAddress").attr("checked") == true) { 
      alert("Id billingAddress is checked!"); 
      $(".baddr").val(""); 
      $(".baddr").attr('disabled', 'disabled'); 
     } else if ($("#billingAddress").attr("checked") == undefined) { 
      $(".baddr").removeAttr("disabled"); 
     } 
    }); 
}); 
</script> 
+0

Кто-то дал ответ, но в качестве точки стиля, если у вас есть что-то вроде 'если (б == TRUE)' где 'b' является логическим, уменьшите его до' if (b) '. – rafalio

+1

Это похоже на хорошую возможность узнать о различиях между атрибутами HTML и свойствами DOM: http://stackoverflow.com/q/6003819/218196, http://stackoverflow.com/q/7588846/218196, http: //stackoverflow.com/q/5874652/218196, http://stackoverflow.com/q/10280250/218196 –

ответ

0

Работа демо: Есть много способов, один из которых: http://jsfiddle.net/J9vWu/

Другая версия с использованием this и цепочки нескольких тиков: http://jsfiddle.net/z9xjB/ или http://jsfiddle.net/NzEjK/

код

$(document).ready(function() { 
    $("#billingAddress").click(function() { 
     if ($("#billingAddress").prop("checked")) { 
      alert("Id billingAddress is checked!"); 
      $(".baddr").val(""); 
      $(".baddr").prop('disabled', 'disabled'); 
     } else if ($("#billingAddress").prop("checked") == undefined) { 
      $(".baddr").removeAttr("disabled"); 
     } 
    }); 
}); 

Или

$(document).ready(function() { 
    $("#billingAddress").click(function() { 
     if ($(this).prop("checked")) { 
      alert("Id billingAddress is checked!"); 
      $(".baddr").val("").prop('disabled', 'disabled');; 
     } else if ($(this).prop("checked") == undefined) { 
      $(".baddr").removeAttr("disabled"); 
     } 
    }); 
}); 
+1

Или еще лучше: 'this.checked'. –

+0

@FelixKling +1 к этому bruvo! yep, одна горячая демонстрация в ближайшее время поддерживает демонстрацию: http://jsfiddle.net/NzEjK/ –

Смежные вопросы