【问题标题】:Pass value (yes or not) to radio button in same form以相同的形式将值(是或否)传递给单选按钮
【发布时间】:2016-08-10 14:03:19
【问题描述】:

在我的 (gravityform) 中,我有两个字段,一个单选按钮或复选框和一个数字字段。 我想根据数字字段向单选按钮传递一个值(是或否),所以如果我用小于默认值的数字填充它,例如 10 ,我会选择单选按钮的复选框“是否”。 不管是在提交之前还是之后都可以。

非常感谢。

【问题讨论】:

  • 欢迎来到 Stack Overflow。在问这样一个一般性问题之前,您可能应该先自己尝试一下。

标签: javascript jquery button dynamic radio


【解决方案1】:

使用名为“keyup”的事件,您可以根据该事件更改单选按钮的值。试试下面的代码:

<html>

<head>
  <script src="https://code.jquery.com/jquery-2.2.3.js" integrity="sha256-laXWtGydpwqJ8JA+X9x2miwmaiKhn8tVmOVEigRNtP4=" crossorigin="anonymous"></script>
  <script>
    $(document).ready(function() {
      $("#numbervalue").on("propertychange change keyup", function() {
        var val = $("#numbervalue").val();
        if (val > 10) {
          $("#one").prop("checked", false);
          $("#two").prop("checked", true);
        } else {
          $("#one").prop("checked", true);
          $("#two").prop("checked", false);
        }
      });
    });
  </script>
</head>

<body>
  <form action="">
    Number:
    <br>
    <input type="number" name="numbervalue" id="numbervalue" value="10">
    <br>
    <br>Value is more than 10 ?
    <br>
    <input type="radio" name="truth" id="one" value="0" checked>No
    <br>
    <input type="radio" name="truth" id="two" value="1">Yes
    <br>
  </form>
</body>

</html>

【讨论】:

  • 对您的解决方案的说明,以及一般的“keyup”解决方案,它们不处理鼠标剪切/粘贴事件。如果通过右键+粘贴粘贴数字或通过右键+剪切剪切当前数字或数字的一部分,则不会触发keyup事件。
  • 感谢您指出这一点。我已经相应地更新了我的解决方案。
【解决方案2】:

这是一个非常基本的演示,说明您正在尝试做的事情:

DEMO

基本思路是查看输入字段中的值并相应地选中或取消选中单选按钮。

【讨论】:

    【解决方案3】:

    好的,谢谢,这工作,太棒了!!

    <script>
        $(document).ready(function() {
          $("#input_1_38").on("propertychange change keyup", function() {
            var val = $("#input_1_38").val();
            if (val > 6575) {
              $("#choice_1_49_0").prop("checked", false);
              $("#choice_1_49_1").prop("checked", true);
            } else {
              $("#choice_1_49_0").prop("checked", true);
              $("#choice_1_49_1").prop("checked", false);
            }
          });
        });
      </script>
    

    【讨论】:

      【解决方案4】:

      您应该为数字输入注册一个事件处理程序。

      纯JS解决方案:

      var radioYes = document.getElementById("choice_1_49_0"),
          radioNo = document.getElementById("choice_1_49_1"),
          valueToCheck = 10;
      
      document.getElementById("input_1_38").addEventListener("change", function() {  
          if (+this.value > valueToCheck)
             radioYes.checked = true;
          else 
             radioNo.checked = true;  
      }, false);
      

      JSFiddle

      编辑:根据您的标记更新代码。

      【讨论】:

      • 好的,这是我的 html [code]
        [code]
      • 我刚刚根据您的标记更新了我的代码。看看吧!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-18
      • 1970-01-01
      • 2012-09-11
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 2017-05-29
      相关资源
      最近更新 更多