JS函数未定义,传递变量

JS function not defined, passing variable

我试图在 URL 中传递一个变量,以根据单击的 link 来检查另一个页面上的单选按钮。不幸的是,我遇到了 "Uncaught ReferenceError: radio_onload is not defined" 错误。

这与 document.onload 有什么关系吗?我尝试了不同的变体,但无法在相邻页面上 select 我的收音机。如果我能得到另一双眼睛来帮助我看到我所缺少的东西,那就太好了。

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,因此不胜感激。

我让它在这个例子中工作得很好。您需要将 ID 添加到 2.html:

中的 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();

查看 fiddle here

希望对您有所帮助。