user2448657
user2448657

Reputation: 111

Modify the text of my radio input button?

Your average radio button has a name and value, but also some text next to it, in this case "Change this text."

How can I change this in javascript? Or even alert it? AFAIK, it is NOT the .inner html.

HTML:

            <input type="radio" name="radioOption1" value="Array 1"> Change this text

Javascript

    var confirmIExist = document.getElementsByName("radioOption1");
alert(confirmIExist.innerHTML);
    //alerts undefined

If it's not .innerHTML, what is it? if I grab the input object with either getElementByName or getElementById, what chunk after that represents the Alert text?

Upvotes: 1

Views: 4304

Answers (4)

Dilantha
Dilantha

Reputation: 1634

You cannot set inner html for a input element. instead wrap your text with a and give it a ID

<input type="radio" name="radioOption1" value="Array 1"> <label id="radioText">Change this text</label>

Upvotes: 3

Feng Xi
Feng Xi

Reputation: 1

confirmIExist[0].nextSibling.textContent="abc"

Upvotes: 0

Musa
Musa

Reputation: 97672

You could use alert(confirmIExist[0].nextSibling.textContent), but wouldn't it be better to place the text next to the radio button in a <label> and then get the inner html of that

<input type="radio" id="radioOption1" name="radioOption1" value="Array 1"><label for="radioOption1" id="r1option">Change this text</label>
...
var label = document.getElementById("r1option");
alert(label.innerHTML);

Upvotes: 3

c.P.u1
c.P.u1

Reputation: 17094

input is a self-closing element. It cannot have innerHTML

nextSibling will return the Node that follows the radio button.

document.getElementsByName('radioOption1')[0].nextSibling.nodeValue = 'Text changed';

jsFiddle Demo

Upvotes: 0

Related Questions