将值从一个表单字段复制到另一个不复选框

时间:2013-07-11 02:58:55

标签: javascript html forms

我想在表单字段中输入一个数字,并在其旁边的字段自动更新为该数字的2倍。如果没有像复选框那样的话,我无法弄清楚如何做到这一点。

我有这个:

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

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

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

感谢您的帮助!

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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