JS函数没有定义,传递变量

时间:2015-08-03 15:49:27

标签: javascript html radio-button

我试图在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,所以感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我在这个例子中得到了很好的工作。您需要在2.html

中为您的HTML元素添加ID
<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

希望这有帮助。