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

你有没有试过这个:

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 不是指向字段值属性的指针。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

这在评论中简要介绍过,但您发布的代码不起作用,因为变量 fname 是按值而不是按引用设置的。

这意味着 fname 等于 document.getElementById('jitender').value 的值。当您设置 fname 的值时,因为它是按值设置的,所以您只设置了 fname 的值,它没有对它“来自”的属性的引用。

正确的解决办法是

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