我有一组单选按钮,一个文本字段,一个复选框和一个隐藏文本字段。
<input type="radio" name="amount-value" value="33"> $ 33 <br>
<input type="radio" name="amount-value" value="50"> $ 50 <br>
<input type="radio" name="amount-value" value="100"> $ 100 <br>
<input type="radio" name="amount-value" value="250"> $ 250 <br>
<input type="radio" name="amount-value" value="500"> $ 500 <br>
<input type="radio" name="amount-value" value="1000"> $ 1000 <br>
<input type="radio" name="amount-value" value="3333"> $ 3,333<br>
<input type="radio" name="amount-value" value="5000"> $ 5,000<br>
<input type="radio" name="amount-value" value="0" id="other-amount">
$ <input type="text" name="" id="other-amount-val" disabled="disabled">
<p><input type="checkbox" id="rainforest_guardian">I'd like to become a Rainforest Guardian by making this an ongoing monthly gift.</p>
<input id="donation_amount" name="amount" value="" type="hidden" >
当选择了最后一个单选按钮#other-amount时,我想启用#other-amount-val文本字段。
如果勾选了#foreforestst-guardian复选框,我想将#donation_amount的name属性更改为“a3”。
这是我试图用来做这个的JS,但是无法弄清楚我做错了什么。 Web Inspector在if语句中给了我“undefined is not a function”。
<script>
$(document).ready(function() {
// Enable Amount input box if radio button is selected
$('#other-amount').change(function() {
if (('#other-amount').prop('checked', true)) {
$('#other-amount-val').prop('disabled', false);
} else {
$('#other-amount-val').prop('disabled', true );
}
});
// Change name attribute value if checkbox is selected
$('#rainforest_guardian').click(function() {
if (('#rainforest_guardian').is(':checked')) {
$('#donation_amount').prop('name', "a3");
} else {
$('#donation_amount').prop('name', "amount" );
}
});
</script>
我在StackExchange上看过几个相关的帖子并试过不同的东西,例如click()与change()如上所示。
请告诉我我做错了什么。提前谢谢。
答案 0 :(得分:1)
您在某些if语句中忘记了$
并错过了结束标记});
if (('#other-amount').prop('checked', true)) {
应该是
if ($('#other-amount').prop('checked', true)) {
^
试试这个:
<强> DEMO HERE 强>
$(document).ready(function () {
// Enable Amount input box if radio button is selected
$('#other-amount').change(function () {
if ($('#other-amount').prop('checked', true)) {
$('#other-amount-val').prop('disabled', false);
} else {
$('#other-amount-val').prop('disabled', true);
}
});
// Change name attribute value if checkbox is selected
$('#rainforest_guardian').click(function () {
if ($('#rainforest_guardian').is(':checked')) {
$('#donation_amount').prop('name', "a3");
} else {
$('#donation_amount').prop('name', "amount");
}
});
});
答案 1 :(得分:0)
('#other-amount').prop('checked', true)
应该是
$('#other-amount').prop('checked')
和
('#rainforest_guardian').is(':checked')
应该是
$('#rainforest_guardian').is(':checked')