如何使用javascript设置输入值
我希望设置输入类型的值,如果条件为真,但我的功能不起作用。我写了正确的代码,但不知道它有什么问题。如何使用javascript设置输入值
<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>
function ghg(){
var finp= document.getElementById('jitender');
if(finp.value == "") {
finp.value = "i am value";
}
}
但为什么我的函数不工作有什么不对 – Carlos 2012-07-14 13:29:31
@amit,在你的函数中,fname不是指向字段值属性的指针。 fname不是一个指针,它是一个字符串 – 2012-07-14 13:36:33
var finp= document.getElementById('jitender');
if(finp.value=="")
finp.value= "i am value";
你能告诉我为什么我的代码不工作的原因 – Carlos 2012-07-14 13:34:25
在你的函数,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
将更改输入的值。
在评论中简要介绍了这一点,但您发布的代码不起作用,因为变量fname是由VALUE NOT BY REFERENCE设置的。
这意味着fname等于任何document.getElementById('jitender')。value的值。当你设置fname的值时,因为它是由BY VALUE设置的,所以你只设置fname的值,它没有对它“来自”的属性的引用。
正确的解决办法是做
document.getElementById('jitender').value = "whatever"
请删除不必要的换行! – helle 2012-07-14 13:23:32