【问题标题】:Copy value from one form field into another without checkbox将值从一个表单字段复制到另一个没有复选框
【发布时间】:2013-07-11 02:58:54
【问题描述】:

我想在表单字段中输入一个数字,并让它旁边的字段自动更新为数字的 2 倍。如果没有复选框之类的东西,我无法弄清楚如何做到这一点。

我有这个:

var val = document.form1.field1.value
  if (/^\s*$/.test(val)) {
  }
  else {
    document.form1.field2.value = val * 2
  }

我认为这样做是检查 field1 是否有任何值(否则我只想显示占位符的字段),如果它确实有值,它将使 field2 = field1 * 2

我的目标是在我在 field1 中键入数字时更新 field2。

感谢您的帮助!

【问题讨论】:

  • 将您的代码放入表单字段的onkeyup 处理程序中。

标签: javascript html forms


【解决方案1】:

添加一个 keyup 处理程序,并将值解析为一个数字(它始终是一个字符串)并乘以 2:

<form id="form1">
    <input id="field1" onkeyup="fn(this)" />
    <input id="field2" />
</form>

<script type="text/javascript">
    function fn(elem) {
        var val = parseFloat(elem.value) * 2 || '';
        document.getElementById('field2').value = val;
    }
</script>

FIDDLE

【讨论】:

    【解决方案2】:

    非常简单。 如果(document.form1.field1.value!=''){ document.form1.field2.value=document.form1.field1.value; }

    【讨论】:

      【解决方案3】:

      Onchange 或 onkeyup,取决于您是否要查找多个数字。

      <form name="form1">
      <input name="field1"type="text" value="" onchange="fieldChanged(this)"/>
      <input name="field2"type="text" value=""/>
      </form>
      
      <script type="text/javascript">
      function fieldChanged(sender){
        if (parseInt(sender.value) != NaN){  
          document.form1.field2.value = parseInt(sender.value) * 2;
        {
        else {
          alert("Only numbers go there!");
        }
      }
      </script>
      

      EXAMPLE FIDDLE

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-25
        • 1970-01-01
        • 1970-01-01
        • 2018-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多