使用if else语句检查输入时,修改属性属性

时间:2013-08-06 22:07:00

标签: jquery

我有一组单选按钮,一个文本字段,一个复选框和一个隐藏文本字段。

<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()如上所示。

请告诉我我做错了什么。提前谢谢。

2 个答案:

答案 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')