1

フォーム フィールドに数値を入力すると、その隣のフィールドが自動的に更新されて数値の 2 倍になるようにしたいと考えています。チェックボックスのようなものがないと、これを行う方法がわかりません。

私はこれを持っています:

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

これが行うと思ったのは、field1に値があるかどうかを確認することです(そうでない場合は、フィールドにプレースホルダーを表示したいだけです)。値がある場合は、field2 = field1 * 2になります

私の目標は、フィールド 1 に数値を入力するときにフィールド 2 を更新することです。

ご協力ありがとうございました!

4

3 に答える 3

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>

フィドル

于 2013-07-11T03:05:47.187 に答える
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>

フィドルの例

于 2013-07-11T03:12:22.687 に答える
0

非常に簡単です。if(document.form1.field1.value!=''){ document.form1.field2.value=document.form1.field1.value; }

于 2013-07-11T03:19:31.870 に答える