【问题标题】:Given two yes/no fields, how can I use JavaScript to make the field 2 value checked "Yes" whenever the field 1 value is checked "Yes"?给定两个是/否字段,当字段 1 值选中“是”时,如何使用 JavaScript 使字段 2 值选中“是”?
【发布时间】:2019-12-20 13:27:14
【问题描述】:

如果字段 1 被选中“是”,那么字段 2 应该被选中“是”

这是我迄今为止一直在尝试的:

字段 1:

<div class="entire">
<div class="col3"><label class="label-right">||FIELDTAG Field1||Question15||ENDFIELDTAG||&nbsp;</label></div>
<div class="col9"><input type="radio" name="Field1" id="Question15yes" value="Yes" onclick="Check()">Yes&nbsp;<input type="radio" name="Field1" value="No" onclick="Check()">No</div>

字段 2:

<div class="entire">
<div class="col3"><label class="label-right">||FIELDTAG Field2||Question16||ENDFIELDTAG||&nbsp;</label></div>
<div class="col9"><input type="radio" name="Field2" id="Question16yes" value="Yes" onclick="Check()">Yes&nbsp;<input type="radio" name="Field2" value="No" onclick="Check()">No</div>

我正在尝试像下面这个 js 一样简单的东西,但我肯定错过了一些东西。任何帮助将不胜感激!

<script language="JavaScript">    
function Check()  {
$("#Question15yes").click(function(){
     if ($(this).is(':checked'))
     {
         $("#Question16yes").val("Yes");
     }
        }
      });
    }      
</script>

【问题讨论】:

标签: javascript jquery html if-statement checkbox


【解决方案1】:

确保在页面中包含 JQuery。

要绑定您的事件,您需要等待DOMfully loaded,否则您将尝试使用尚不存在的元素。

<script language="JavaScript">    
    $(function() {
      $(".question-checkbox").click(function(){
        if ($(this).is(':checked'))
        {
          console.log($(this));
        }
      });
    });     
</script>

此外,您可能希望将 JQuery 选择器从 ID 更改为类,以便您可以对所有类似的复选框使用相同的代码。

在输入上放置一个.question-checkbox 类,并删除所有点击。

【讨论】:

    【解决方案2】:

    您不必每次点击都调用check。文档加载后,调用一次。

    window.addEventListener("load", function(){
      $("input[type='radio']").on("click", function(){
        if($("#Question15yes").is(':checked'))
          $("#Question16yes").prop("checked", true);
        });
      });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <div class="entire">
      <div class="col3">
        <label class="label-right">||FIELDTAG Field1||Question15||ENDFIELDTAG||&nbsp;</label>
        </div>
      <div class="col9">
        <input type="radio" name="Field1" id="Question15yes" value="Yes">
          Yes&nbsp;
        <input type="radio" name="Field1" value="No" >No
      </div>
    
    <div class="entire">
      <div class="col3">
        <label class="label-right">||FIELDTAG Field2||Question16||ENDFIELDTAG||&nbsp;</label>
        </div>
      <div class="col9">
        <input type="radio" name="Field2" id="Question16yes" value="Yes">
        Yes&nbsp;
        <input type="radio" name="Field2" value="No">
        No
      </div>

    【讨论】:

    • 谢谢。如果我没有在每次点击时调用检查,用户是否能够手动将字段 2 更改为“否”?我在想如果他们试图将字段 2 设为“否”,则需要再次调用支票以强制其返回“是”
    【解决方案3】:

    将其用于类名为“example”的单个复选框:

     $('input.example').on('change', function() {
      $('input.example').not(this).prop('checked', false);
     });
    

    【讨论】:

      猜你喜欢
      • 2020-04-26
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      • 2013-03-03
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      相关资源
      最近更新 更多