2011-08-11 77 views
-1

确定我试图评估和窗口没有成功:JavaScript字符串作为变量

我收到一个单选按钮的名称,我再要用来设置按钮,检查的一部分,下面的功能,它的工作原理如果我将方括号替换为其中一个产品的名称,那么我知道问题与方括号中的内容有关,请帮助,我该怎么做?

function load_rights(product) 
{ 
document.form.window[product+"_radio_selection"][0].checked = true; 
//also tried - var tempstr = eval(product+'_radio_selection'); 
//   - document.form.tempstr[0].checked = true; 

} 

在PHP中生成的单选按钮:

echo "<input name='".$value."_radio_selection' type='radio' value='yes' />" 
ehco "<input name='".$value."_radio_selection' type='radio' checked='checked' value='no' />" 

你CNT的ID使用元素 - 它不与单选按钮的工作,相信我,我花了整整一天一天的学习那。

如果我尝试的元素的id,并添加ID标签到HTML我得到一个空的错误,如果我使用的窗口,我得到一个空的错误,但是如果我把在产品如document.form.Admin_radio_selection之一[ 0] .checked = true;它的工作原理,arrr那么讨厌..

+0

你的HTML看起来像什么? –

+0

产品的价值是什么? –

+0

在浏览器中查看源代码并发布生成的HTML。 –

回答

0

你需要使用它的ID与getElementById()检索元素:

如图
var e = document.getElementById(product+"_radio_selection"); 
e.checked = true; 

为了让这项工作,你需要ID添加到您的单选按钮,已经有Mark Biek

+0

说它的空,我似乎记得你cnt使用单选按钮的getElementById – David

+0

它可能是空的,因为你的标记,因为它的立场,没有ID属性。你需要添加它们。 –

+0

我做了,仍为空,如果我使用窗口[](如果我硬编码它像document.form.Admin_radio_selection [0] .checked = true;也适用于该产品.. – David

1

假设你想要一个纯Javascript的解决方案,我会说你最好的选择是把ID放在收音机输入。然后你可以使用document.getElementById来获取元素的句柄。

<input type="radio" id="foo_radio_selection" value="" />Foo<br /> 
<input type="radio" id="bar_radio_selection" value="" />Bar<br /> 

function load_rights(product) { 
    document.getElementById(product+'_radio_selection').checked = true; 
} 

load_rights('bar'); 

jsfiddle

+0

说它的空,我似乎记得你cnt使用单选按钮的getElementById – David

+1

如果你仍然收到null,那么单选按钮HTML元素的ID不匹配你传递给getElementById的。此外,你可以使用getElementById和任何*有一个ID :) –

1

你可以尝试考虑jquery $(':checkbox').filter('name=somename').attr('checked',true);

这是这样做的最简单的方法。

或者你也可以说document.form[0].<<checkboxname>>.checked=true

+0

有一天,当我轮到学习jQuery,然后是^^ – David

+0

你试过这个'document.form [0]。<< checkboxname >>。检查= TRUE; –