dry9192 2018-10-08 12:05
浏览 112
已采纳

如果选中单选按钮,则更改字段的只读状态,不进行jquery

I have a form, I want to initially have some normal fields and some readonly fields. Then a radio button with two options, if it's the default option nothing changes, if they select the second then the readonly fields become editable.

I need to do this without jquery.

Here's the form

<form name="newstock" action="newstock-save.php" method="post">

<input type="radio" name="individual" value="1" checked> Fruit<br>
<input type="radio" name="individual" value="0"> Veges<br><br>

<table>
<tr>
    <td>Item name</td>
    <td><input type="text" name="item_name"></td>
</tr>
<tr>
    <td>Packing</td>
    <td><input type="text" name="packing_name" readonly></td>
</tr>
<tr>
    <td>Unit</td>
    <td><input type="text" name="packing_unit" readonly></td>
</tr>
</table>

Please assist

  • 写回答

3条回答 默认 最新

  • dongxie3681 2018-10-08 12:33
    关注

    First, add the IDs in your HTML.

    <form name="newstock" action="newstock-save.php" method="post">
    
    <input type="radio" name="individual" value="1" id="individual1" checked> Fruit<br>
    <input type="radio" name="individual" value="0" id="individual0"> Veges<br><br>
    
    <table>
    <tr>
        <td>Item name</td>
        <td><input type="text" name="item_name"></td>
    </tr>
    <tr>
        <td>Packing</td>
        <td><input type="text" name="packing_name" id="packing_name" readonly></td>
    </tr>
    <tr>
        <td>Unit</td>
        <td><input type="text" name="packing_unit" id="package_unit" readonly></td>
    </tr>
    </table>
    

    Then, get the elements with getElementById, and add EventListeners in your JS.

    const individual1  = document.getElementById("individual1"),
          individual0  = document.getElementById("individual0"),
          packing_name = document.getElementById("packing_name"),
          package_unit = document.getElementById("package_unit");
    
    individual1.addEventListener("change", function(){
      packing_name.value = '';
      package_unit.value = '';
      packing_name.readOnly = true;
      package_unit.readOnly = true;
    });
    
    individual0.addEventListener("change", function(){
      packing_name.readOnly = false;
      package_unit.readOnly = false;
    });
    

    CodePen: https://codepen.io/anon/pen/vVyVGx

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答