【问题标题】:Radio button to disable select ( 'else' not working)禁用选择的单选按钮(“其他”不起作用)
【发布时间】:2012-09-26 10:11:52
【问题描述】:

这就是我所拥有的

<script type="text/javascript">

    $('input:radio[name="RADIOSELECTOR"]').change(function() {

        if ($(this).val()=='one') {
                $('#ones').removeAttr('disabled');
             $('#twos').attr('disabled',true);
        } else if ($(this).val()=='two') {
            $('#ones').attr('disabled',true);
             $('#twos').removeAttr('disabled');
        }  else  {
          $('#ones').attr('disabled',true);
                  $('#twos').attr('disabled',true);
         }


                     });
</script>

<form name="order" action="managecart.html" onsubmit="return AddToCart(this); return ValidateCart(this);">
<input name="PRICE" type=hidden id="PRICE" value="" />
<input name=NAME type=hidden id="NAME" value="" />
<input name=ID_NUM type=hidden id="ID_NUM" value="" />
<input type=hidden name="SHIPPING" value="0.00" />
<input type="radio" name="RADIOSELECTOR" value="lose" onClick="document.order.PRICE.value='59.99'; document.order.NAME.value='iPhone 3G Glass/digitiazer replacement'; document.order.ID_NUM.value='3GGL'; document.order.SHIPPING.value='0.00';" />Glass/digitizer repair  <b>59.99$</b><br><br>
<b> Combo repairs:</b><BR><br>
<input type="radio" name="RADIOSELECTOR" value="lose" onClick="document.order.PRICE.value='74.99'; document.order.NAME.value='iPhone 3G Glass/digitizer + battery repair'; document.order.ID_NUM.value='3GGLB'; document.order.SHIPPING.value='0.00';" />Glass/digitizer + battery repair = <b> 74.99$</b> 25$ in savings!<br>

<input type="radio" name="RADIOSELECTOR" value="one" onClick="document.order.PRICE.value='79.99'; document.order.NAME.value='iPhone 3G Glass/digitizer + combo '; document.order.ID_NUM.value='3GGLC'; document.order.SHIPPING.value='0.00';" />Glass/digitizer + <select id="ones" name="ADDITIONALINFO2" disabled="disabled">
<option value=" "></option><option value="Home button">Home button</option> <option value="Power button">Power button</option><option value="Mute switch">Mute switch</option><option value="volume button">Volume button</option></select>

 = <b>79.99$</b> 30$ in savings!<br>

<input type="radio" name="RADIOSELECTOR" value="two" onClick="document.order.PRICE.value='99.99'; document.order.NAME.value='iPhone 3G Glass/digitizer + combo + ''ADDITIONALINFO3'; document.order.ID_NUM.value='3GGLBC'; document.order.SHIPPING.value='0.00';" />Glass/digitizer + battery +  <select name="ADDITIONALINFO3" id="twos" disabled="disabled"><option value=" "></option><option value="Home button">Home button</option> <option value="Power button">Power button</option><option value="Mute switch">Mute switch</option><option value="volume button">Volume button</option></select> = <b>99.99$</b> 30$ in savings!<br>

<input name="QUANTITY" type="hidden" value="1" /><br>
<input type="image" src="./images/addtocart.png" align="center" name="BUY" value=" Add to cart " ALT="Add to Cart">
</form>

演示http://jsfiddle.net/uSmVD/86/

脚本在 html 文件中不起作用。如何解决这个问题? 这是我试图让它工作的实际页面http://icuretech.com/revision/iphone-3g-glass-repair.html

【问题讨论】:

  • 你能用适当的缩进格式化你的代码以使其清晰易读吗?
  • jsfiddle.net/uSmVD/79 这是其他发生的事情
  • 因为中间块应该使用else if,而不是if。阅读this
  • 这确实有助于“if, else if, else”的方式效果很好

标签: javascript jquery select radio-button


【解决方案1】:

您没有值为lose1 的输入。您将 lose1 分别作为某些输入的值,但不能同时作为两者的值,因此该表达式永远不会计算出您想要的值。

【讨论】:

  • true,我确实纠正了这一点,但是当我这样做时 { $('#ones').attr('disabled',true); $('#twos').attr('disabled',true);我不能正常工作,这是为什么呢?另外,当我将脚本放在 html 正文中时,它不起作用,谢谢您的回复
  • 好的,所以对于初学者来说,您要删除一个名为“disable”的属性,该属性是您一开始没有分配的。因此,如果您在其他任何内容之前点击 else 语句,它就无法删除从一开始就不存在的属性。此外,我什至没有在您在代码中提供的脚本 sn-p 中看到 else 语句。最后,如果要将 Javascript 嵌入正文中,则需要确保将 Javascript 包装在
  • @Rafal:当您对代码进行更改/更正时,请更新您的问题。
  • ok 将 disabled="disabled" 添加到 select 和 if,else if,否则效果很好,我将脚本包装在
【解决方案2】:
<script src="prototype.js"></script>
<script src="jquery.js"></script>

   <script>
     $('input:radio[name="RADIOSELECTOR"]').change(function() {

        if ($(this).val()=='one') {
                $('#ones').removeAttr('disabled');
             $('#twos').attr('disabled',true);
        } if ($(this).val()=='two') {
            $('#ones').attr('disabled',true);
             $('#twos').removeAttr('disabled');
        }   if ($(this).val()=='lose')  {
          $('#ones').attr('disabled',true);
                  $('#twos').attr('disabled',true);
         }
           if ($(this).val()=='lose1')  {
          $('#ones').attr('disabled',true);
                  $('#twos').attr('disabled',true);
         }

   });

   </script>
<form name="order" action="managecart.html" onsubmit="return AddToCart(this); return ValidateCart(this);">
<input name="PRICE" type=hidden id="PRICE" value="" />
<input name=NAME type=hidden id="NAME" value="" />
<input name=ID_NUM type=hidden id="ID_NUM" value="" />
<input type=hidden name="SHIPPING" value="0.00" />
<input type="radio" name="RADIOSELECTOR" value="lose" onClick="document.order.PRICE.value='59.99'; document.order.NAME.value='iPhone 3G Glass/digitiazer replacement'; document.order.ID_NUM.value='3GGL'; document.order.SHIPPING.value='0.00';" />Glass/digitizer repair  <b>59.99$</b><br><br>
<b> Combo repairs:</b><BR><br>
<input type="radio" name="RADIOSELECTOR" value="lose" onClick="document.order.PRICE.value='74.99'; document.order.NAME.value='iPhone 3G Glass/digitizer + battery repair'; document.order.ID_NUM.value='3GGLB'; document.order.SHIPPING.value='0.00';" />Glass/digitizer + battery repair = <b> 74.99$</b> 25$ in savings!<br>

<input type="radio" name="RADIOSELECTOR" value="one" onClick="document.order.PRICE.value='79.99'; document.order.NAME.value='iPhone 3G Glass/digitizer + combo '; document.order.ID_NUM.value='3GGLC'; document.order.SHIPPING.value='0.00';" />Glass/digitizer + <select id="ones" name="ADDITIONALINFO2">
<option value=" "></option><option value="Home button">Home button</option> <option value="Power button">Power button</option><option value="Mute switch">Mute switch</option><option value="volume button">Volume button</option></select>

 = <b>79.99$</b> 30$ in savings!<br>

<input type="radio" name="RADIOSELECTOR" value="two" onClick="document.order.PRICE.value='99.99'; document.order.NAME.value='iPhone 3G Glass/digitizer + combo + ''ADDITIONALINFO3'; document.order.ID_NUM.value='3GGLBC'; document.order.SHIPPING.value='0.00';" />Glass/digitizer + battery +  <select name="ADDITIONALINFO3" id="twos" ><option value=" "></option><option value="Home button">Home button</option> <option value="Power button">Power button</option><option value="Mute switch">Mute switch</option><option value="volume button">Volume button</option></select> = <b>99.99$</b> 30$ in savings!<br>

<input name="QUANTITY" type="hidden" value="1" /><br>
<input type="image" src="./images/addtocart.png" align="center" name="BUY" value=" Add to cart " ALT="Add to Cart">
</form>

【讨论】:

    猜你喜欢
    • 2017-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 2014-01-31
    • 2017-02-08
    • 1970-01-01
    • 2017-11-25
    相关资源
    最近更新 更多