user1570222
user1570222

Reputation: 93

Setting HTML textbox value using javascript function?

I'm using this code to set the HTML textbox value using Javascript function. But it seems to be not working. Can anyone point out, what is wrong with this code?

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

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

the "value" is came from my android java class using this codes

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 +")");

Upvotes: 3

Views: 51706

Answers (8)

Hazem Salama
Hazem Salama

Reputation: 15111

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

But then as pointed out in the comments, you need to call setValue(value) somewhere in your code. Right now you just defined the function is never called.

Upvotes: 7

Sagar V
Sagar V

Reputation: 12478

Check this out:

<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>

Upvotes: 0

user3451875
user3451875

Reputation: 1

It's not Elements It's Element

You should use document.getElementById('object-id');

Upvotes: -1

code-jaff
code-jaff

Reputation: 9330

I think you are missing the quotes,

try,

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

also consider about the typo.

Upvotes: 0

Mahendra Liya
Mahendra Liya

Reputation: 13218

Firstly, you have a typo in your javascript function i.e. you have used getElementsById as compared to getElementById

To set the value of the textbox on page load, I suggest you use an alternative

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

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

</body>

Upvotes: 0

Roger
Roger

Reputation: 2952

You are not linking the function to anything. For example, a click:

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

Replace the onclick attribute for your desired function, whatever it does (you need to be more specific)

Also, there is no language attribute (at least not anymore) use type="text/javascript" instead

Here is a fiddle: http://jsfiddle.net/4juEp/

Click the input to see it working.

Look at this second fiddle. http://jsfiddle.net/4juEp/1/

which loads whatever is defined in the hid input to the name input.

Upvotes: 0

Venkatesh S
Venkatesh S

Reputation: 5494

You could either access the element’s value by its name:

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

So:

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

Or you assign an ID to the element that then identifies it and you can access it with getElementById:

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

Upvotes: 1

Ahsan Khurshid
Ahsan Khurshid

Reputation: 9469

You are using document.getElementsById("name") it should be document.getElementById("name")

not Elements it is Element

Upvotes: 0

Related Questions