2013-07-11 192 views
1

我想在表单域中输入一个数字,并将其旁边的域自动更新为数字的两倍。我无法弄清楚如何在没有复选框的情况下做到这一点。将复制值从一个表单域复制到另一个没有复选框的另一个表单域

我有这样的:

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

我认为这会做的是检查是否有FIELD1任何价值(否则我就跟字段显示占位符),如果它确实有它的值会使字段2 =字段1 * 2

我的目标是有字段2更新,因为我键入字段1中的数字。

谢谢你的帮助!

+0

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

回答

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

+0

真棒,谢谢!比我的方法简单多了。 – SirBdon

0

平变化或的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

0

很简单。 012(document.form1.field1.value!=''){ document.form1.field2.value = document.form1.field1.value; }

相关问题