我正在尝试调用HTML Select函数的一个javascript函数。
HTML文档:
<select name="network" onChange="test(this)">
<option value="net1">Net1</option>
<option value="net2">net2</option>
</select>
<script>
alert("test");
var URLArray = [];
function test(str){
alert("test");
}
</script>
我得到第一个警报,但不是第二个警报。我错过了什么?
编辑:代码实际上有效,但无论出于何种原因,我都无法在JSFiddle中使用单独的窗格。有什么想法?
答案 0 :(得分:2)
当jsFiddle运行你的代码时,它将它包装在一个这样的闭包中:
<script type='text/javascript'>//<![CDATA[
window.onload=function(){
alert("test");
var URLArray = [];
function test(str){
alert("test");
}
}//]]>
</script>
因此,您定义的“test”函数永远不会作为全局函数使用,因此无法通过您在select标记上放置的内联javascript访问。
我强烈建议你学习使用jQuery来附加你的事件处理程序:
<select name="network">
<option value="net1">Net1</option>
<option value="net2">net2</option>
</select>
$(function () {
console.log("oh look, the document is ready");
$("[name=network]").change(function () {
console.log("now my code is groovy, but i might want to use an id rather than name selector");
});
});
答案 1 :(得分:0)
您的脚本没问题,您只需为alert
添加相同的值(“测试”)。
<script>
alert("test1");
var URLArray = [];
function test(str){
alert("test2");
}
</script>
或者也许最终的目标是......
function test(elm){
alert(elm.value);
}
答案 2 :(得分:0)
尝试将您的脚本移动到第一次调用之上,如下所示:
<script>
alert("test");
var URLArray = [];
function test(str){
alert("test");
}
</script>
<select name="network" onChange="test(this)">
<option value="net1">Net1</option>
<option value="net2">net2</option>
</select>
这是jsfiddle,如您所见,我将javascript设置在标题中。
答案 3 :(得分:0)
正如Panayot所说,您的代码没问题,但我宁愿使用console.log()
代替alert
。在控制台上查看比跟踪警报要容易得多。
<select name="network" onChange="test(this)">
<option value="net1">Net1</option>
<option value="net2">net2</option>
</select>
<script>
console.log("test1")
var URLArray = [];
function test(str){
console.log("test2");
}
</script>