0

条件が真の場合に入力タイプの値を設定したいのですが、関数が機能していません。私は正しいコードを書いていますが、何が悪いのかわかりません。

<head>
<script type="text/javascript">
function ghg(){
  var fname= document.getElementById('jitender').value;
  if(fname=="") {
    fname= "i am value";
  }
}
</script>
</head>

<body>
  <input type="text" id="jitender" value="" />
  <input type='button' value="submit" onclick="ghg()"/>
</body>
4

5 に答える 5

1

関数の fname は、フィールドの value 属性へのポインタではありません。fnameは文字列です。したがって、fname別の値を割り当てるdocument.getElementById('jitender').valueと、古い値が引き続き含まれます。

入力の値を変更する方法は次のとおりです。

function ghg()
{
  var e = document.getElementById('jitender');
  if (e.value=='') e.value = 'i am value';
}

この関数の e は、id jitender を持つ DOM 要素を表すオブジェクトへのポインタです。したがって、この場合document.getElementById('jitender')、 とeは同じオブジェクトへのポインターであるため、設定e.valueによって入力の値が変更されます。

于 2012-07-14T13:43:54.670 に答える
1

あなたはすでにこれを試しましたか:

document.getElementById('jitender').value = "blaah"
于 2012-07-14T13:24:53.083 に答える
1
var finp= document.getElementById('jitender');
if(finp.value=="")
   finp.value= "i am value";
于 2012-07-14T13:24:57.850 に答える
1
function ghg(){
  var finp= document.getElementById('jitender');

  if(finp.value == "") {
    finp.value = "i am value";
  }
}
于 2012-07-14T13:25:06.917 に答える
1

これはコメントで簡単に触れられましたが、変数 fname が BY REFERENCE ではなく BY VALUE で設定されているため、投稿したコードは機能しません。

これは、fname が document.getElementById('jitender').value の値と等しいことを意味します。fname の値を設定すると、値によって設定されたため、fname の値のみを設定しているため、「元の」プロパティへの参照がありません。

正しい解決策はすることです

document.getElementById('jitender').value = "whatever"
于 2012-07-14T13:46:06.570 に答える