我试图在URL中传递一个变量,根据点击的链接检查另一个页面上的单选按钮。不幸的是,我得到了一个" Uncaught ReferenceError:radio_onload没有定义"错误。
这与document.onload有什么关系吗?我尝试了不同的版本,但我无法在相邻页面上选择我的收音机。如果我能得到另一双眼睛来帮助我看到我失踪的东西,那就太棒了。
1.html JS
var locate = window.location.toString();
var text = locate;
function delineate2(str){
point = str.lastIndexOf("=");
return(str.substring(point+1,str.length));
}
var passOpt = delineate2(text);
function radio(){
document.getElementById(passOpt).checked="checked";
}
1.html用户选项
<!-- if clicked, select test 1 radio on 2.html-->
<a href="2.html?formOpt=test1">test 1</a>
<!-- if clicked, select test 2 radio on 2.html-->
<a href="2.html?formOpt=test2">test 2</a>
2.html,电台形式
<form>
<input type="radio" name="test" value="test1"/>Test #1
<input type="radio" name="test" value="test2"/>Test #2
</form>
在2.html上调用我的函数
radio();
如果您认为我可以采取另一种方法,请随时告诉我。我还在学习JS,所以感谢任何帮助。
答案 0 :(得分:1)
我在这个例子中得到了很好的工作。您需要在2.html
:
<form>
<input id="test1" type="radio" name="test" value="test1" />Test #1
<input id="test2" type="radio" name="test" value="test2"/>Test #2
</form>
我使用了一个示例字符串作为delineate
函数的输入(因为您无法在JSFiddle中使用URL查询),并且稍微更改了radio
函数:
var locate = "2.html?formOpt=test2"
function delineate2(str){
point = str.lastIndexOf("=");
return(str.substring(point+1,str.length));
}
var passOpt = delineate2(locate);
//this was used for debugging
document.getElementById("result").innerHTML = passOpt;
function radio(){
document.getElementById(passOpt).setAttribute("checked", true);
}
radio();
查看小提琴here
希望这有帮助。