2012-08-02 56 views
3

我使用此代码来使用Javascript函数设置HTML文本框的值。但它似乎不起作用。任何人都可以指出,这段代码有什么问题?使用javascript函数设置HTML文本框的值?

Whats your Name? 
<input id="name" value="" /> 

<script type="text/javascript"> 
function setValue(value){ 
var myValue=value; 
document.getElementsById("name").value = myValue; 
} 
</script> 

“价值”是从我的Android的Java类使用此代码

String value = "Isiah"; 
    WebView web = (WebView) findViewById(R.id.web1); 
    web.getSettings().setJavaScriptEnabled(true); 
    web.loadUrl("file:///android_asset/www/webpage"); 
    web.loadUrl("javascript:setValue("+ value +")"); 
+0

你到底想干什么? – 2012-08-02 03:59:28

+0

''document.getElementsByName(“name”)。value = value' – elclanrs 2012-08-02 04:00:53

+0

''''''''\''\''\'\后面多余的'''(和反斜杠) – irrelephant 2012-08-02 04:01:25

回答

0

你没有连接的功能有什么后果。例如,点击:

<input id="name" value="" onclick="javascript:this.value=12;"/> 

更换onclick属性为你想要的功能,不管它(你需要更具体)

此外,没有语言属性(至少不再)使用type="text/javascript"代替

这里是一个小提琴:http://jsfiddle.net/4juEp/

点击输入看到它的工作。

看看这第二个小提琴。 http://jsfiddle.net/4juEp/1/

它加载任何定义在名称输入的隐藏输入。

+0

请看看我上面编辑的代码 – user1570222 2012-08-02 04:14:50

+0

如何在不使用按钮的情况下调用它? – user1570222 2012-08-02 04:22:20

+0

@ user1570222我从来没有使用过Android(我计划,但我现在不知道)看到链接我更新到答案,希望它可以帮助,正如我所说的,你需要从某处调用函数。在javascript http://www.youtube.com/watch?v=v2ifWcnQs6M – Roger 2012-08-02 04:22:27

7
function setValue(value) { 
    var myValue=value; //unnecessary 
    document.getElementById("name").value= myValue; 
} 

但是,正如评论中指出的那样,您需要在代码中的某处调用setValue(value)。现在你只是定义了这个函数永远不会被调用。

+0

如何在不使用按钮的情况下调用它? – user1570222 2012-08-02 04:22:27

+0

您可以使用按钮/链接/或仅在页面加载时调用该功能。取决于你想要盒子被填满的时间。你想什么时候发生这种情况? – hsalama 2012-08-02 04:25:19

0

您正在使用document.getElementsById("name")应该document.getElementById("name")

Elements这是Element

+0

是的,我已经改变它仍然不工作 – user1570222 2012-08-02 04:17:29

1

您既可以通过它的名称访问该元素的值:

document.getElementsByName("textbox1"); // returns a list of elements with name="textbox1" 
    document.getElementsByName("textbox1")[0] // returns the first element in DOM with name="textbox1" 

所以:

input name="buttonExecute" onclick="execute(document.getElementsByName('textbox1')[0].value)" type="button" value="Execute" /> 

或者你分配一个ID给然后确定它的元素,你可以用的getElementById访问:

<input name="textbox1" id="textbox1" type="text" /> 
    <input name="buttonExecute" onclick="execute(document.getElementById('textbox1').value)" type="button" value="Execute" /> 
0

首先,你必须在你的JavaScript函数的错字也就是你已经使用getElementsById相比getElementById

设置在页面加载文本框的值,我建议你使用一个替代

<body onload="setValue('yourValueToSet');"> 

<!-- Your usual html code in the html file --> 

</body> 
0

我认为你缺少的报价,

试试,

web.loadUrl("javascript:setValue('"+ value +"')"); 

也考虑关于错字。

+0

我编辑它为web.loadUrl(“javascript:setValue('”+ value +“')”);仍然未定义 – user1570222 2012-08-02 04:52:53

+0

我不确定你是否在'web.loadUrl(“file:/// android_asset/www/webpage”)结尾缺少html扩展名;'或尝试'web.loadUrl(“javascript:setValue (\“”+ value +“\”)“);' – 2012-08-02 05:39:08

+0

我已经改变它,就像你说的但仍然未定义 – user1570222 2012-08-02 09:07:52

-1

这不是元素 它的元素

您应该使用document.getElementById('object-id');

+1

尝试阐述你的答案。像提供代码或文档等 – Sanoob 2014-03-23 10:22:50

0

检查了这一点:

<body onload="setvalue($value);"> 
Whats your Name?<input id="name" name="name" value=""/> 
<script type="text/javascript"> 
function setValue(value){ 
document.{formname}.name.value = value;}</script>