2011-12-02 193 views
0

我需要動態選擇一個單選按鈕。動態選擇一個單選按鈕

ⅰ)我已經使用創建幾個單選按鈕動態地,即,在一個功能:

function funcName() 
{ 
    Something.innerHTML = '<input type = "radio" name = "rName" id = "1" />' + '<input type = "radio" name = "rName" id = "2" />' + '<input type = "radio" name = "rName" id = "3" />'; 

} 

ⅱ)我需要動態選擇單選按鈕,在另一種功能:

function funcNAme(someVar) 
{ 
    document.getElementById(someVar).checked = true; 
} 

但這不起作用,即單選按鈕沒有被選中。但是,「禁用」正常工作。 另外:

alert(someVar); 

返回適當的期望值。

+0

你的函數應該是工作的罰款... [查看這個示例](http://jsfiddle.net/2dmSz/1/) – Teneff

+0

這可能與我的第二個評論我的答案 - 關於將ID設置爲數字 - 不是一種好的做法並且無效 – ManseUK

回答

2

的語法如下:

element.checked = true; 

所以你需要使用

document.getElementById(someVar).checked = true; 

看到這裏 - >HTMLInputElement

工作實例 - >http://jsfiddle.net/p5yca/

並請請不要使用數字作爲元素的ID - >http://www.w3.org/TR/html401/types.html#type-name

+0

對不起,這是一個錯字。 –

+0

那麼它在我的例子中工作正常 - 什麼瀏覽器失敗?你怎麼觸發這個功能?你得到什麼錯誤? – ManseUK

+0

使用ff。不一定會激發一個功能。定義一個創建單選按鈕的函數。使用另一個功能來選擇它。實際上不是一個錯誤,單選按鈕沒有被選中 –

2

似乎很好地工作:

function checkRadio(id) { 
    document.getElementById(id).checked = true; 
} 

function createRadios() 
{ 
    document.getElementById('container').innerHTML = '<input type = "radio" name = "rName" id = "1" />' + '<input type = "radio" name = "rName" id = "2" />' + '<input type = "radio" name = "rName" id = "3" />'; 
} 

createRadios(); 
checkRadio("2"); 

示例 - http://jsfiddle.net/infernalbadger/LHyQT/2/

+0

對不起,這是一個錯字。 –

+0

@ElClassico我已經更新了小提琴,所以它幾乎與你的例子相同,它工作正常。你使用的是什麼瀏覽器? (我測試了鉻,ff和ie8,它工作正常) –

+0

使用ff。是因爲我動態創建按鈕,我遇到這個錯誤? –

1

你設置checked屬性上innerHTML屬性,而不是DOM元素本身;這應該做的伎倆:

document.getElementById("id").checked = true; 
+0

對不起,這是一個錯字。 –