【问题标题】:if radio button is selected require the input field如果选择了单选按钮,则需要输入字段
【发布时间】:2019-12-13 02:33:42
【问题描述】:

我哪里做错了?

我有 2 个单选按钮。 必须选择其中之一。

如果用户选择第一个并提交表单,那么信息应该发送给我。 这很好用。

如果用户选择第二个单选按钮,则需要再填写两个输入字段,并且表单应该无法发送/提交。 不知何故,这个不起作用。 数据即将到来,但如果我不填写这些必填字段,它仍然会通过。

你能帮帮我吗?

<div>
<p><b>Please choose</b></p>

  <br>

  <p>
    <input type="radio" name="mypuboption" id="myoneyear" tabindex="9" required value="one year" onclick="myFunctionyear(); document.getElementById('mypubweek').removeAttribute('disabled')">
    <br>1 year
  </p>

  <br>

  <p>
    <input type="radio" name="mypuboption" id="myownyear" tabindex="10" required value="own year" onclick="myFunctionyear(); myweekselection(); document.getElementById('mypubweek').removeAttribute('disabled')">
    <br>own year
  </p>

  <p id="mypubweek" style="display:none;" align="center">
    <br>
    <input type="week" class="form-control" id="mypubstart" name="mypubstart" tabindex="11" style="width:180px; margin:auto;">
    <br>
    <select id="myownweek" name="myownweek" tabindex="12" style="width:180px; height:34px; border-radius:5px; border-color:#D1D1D1;">
      <option value="">choose</option>
      <option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option>
      <option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option>
      <option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option>
      <option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option>
      <option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option>
      <option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option>
      <option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option>
      <option value="29">29</option><option value="30">30</option><option value="31">31</option><option value="32">32</option>
    </select>
  </p>

  <script>
    function myFunctionyear() {
      var checkBox = document.getElementById("myownyear");
      var text = document.getElementById("mypubweek");
      if (checkBox.checked == true){
        text.style.display = "block";
      } else {
        text.style.display = "none";
      }
    }
  </script>

  <script>
    $(function myweekselection () {
      $('input[id="myownyear"]').change(function () {
        if($(this).val() === 'value') {
          $('#myownweek').attr('required', true);
        } else {
          $('#myownweek').removeAttr('required');
        }
      });
    });
  </script>
</div>

【问题讨论】:

    标签: html radio-button conditional-statements required


    【解决方案1】:

    将输入设置为必需用于.prop 而不是.attr。此外,所有这些功能都无需根据点击触发,只需检测单选按钮的更改即可。

    $("input[type='radio']").on("change", function(){
       if($('#secondInput').is(':checked')){
        $("input[type='text']").show();
        $("input[type='text']").prop('required',true);
      } else {
        $("input[type='text']").hide();
        $("input[type='text']").prop('required',false);
      }
    });
    input[type="text"] {
      display:none;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <form>
    
      1<input type="radio" name="rad" value="1" required> 
      2<input type="radio" id="secondInput" name="rad" value="2">
      <input type="text">
      <input type="text">
    
      <button type="submit">Submit</button>
    </form>

    【讨论】:

      猜你喜欢
      • 2020-05-18
      • 2020-11-08
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      • 1970-01-01
      • 2012-08-11
      相关资源
      最近更新 更多