2013-07-11 3 views
1

Я хотел бы ввести число в поле формы и указать, что поле рядом с ним автоматически обновляется до 2x числа. Я не могу понять, как это сделать без чего-то вроде флажка.Скопировать значение из одного поля формы в другое без флажка

У меня есть это:

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

То, что я думал, что это будет сделать, это проверить, если field1 имеет какое-либо значение (в противном случае я бы так же, как поля, чтобы показать заполнитель), и если у него есть значение, которое он было бы поле field2 = field1 * 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

Awesome, спасибо! Гораздо проще, чем мой метод. – SirBdon

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

0

Очень просто. if (document.form1.field1.value! = '') { document.form1.field2.value = document.form1.field1.value; }

Смежные вопросы