繁体   English   中英

Onclick事件不适用于单选按钮

[英]Onclick event not working with radio button

我是html的新手

我正在尝试使用单选按钮添加onclick事件,但是它不起作用。 我不知道原因。 请帮忙。

Example code
<script>
    function select(btn)
    {
     var1=document.getElementById("radio1");
     var2=document.getElementById("radio2");
     var3=document.getElementById("radio3");
     if(var1.checked==true)
     {
        document.myform.action="A.html";
     }
     elseif(var2.checked==true)
     {
        document.myform.action="B.html";
     }
     else
     {
        document.myform.action="C.html";
     }
   }
</script>

function test()
{
alert('Testing')
}

{% block radio_buttons %}
    <br><br><br>
    <!-- <input type="radio" id="radio1" name="project_type" value=0 checked    onclick="alert('yes')"><label>Projects I own</label> -->
    <input type="radio" id="radio1" name="project_type" value=0 checked onclick="select('this')"><label>Projects I own</label>
    <br>
    <input type="radio" id="radio2" name="project_type" value=1 onclick="test()"><label>Projects I manage</label>
<br>
    <input type="radio" id="radio3" name="project_type" value=1 onclick="select()"><label>Projects I can edit</label>
<br>
{% endblock %}

我已在模板中添加了此代码。 我尝试添加警报。 警报被执行但不是onclick事件

select函数包含语法错误,因此从不执行。 写:

 else if (var2.checked==true)

代替

 elseif (var2.checked==true)

为避免此类错误,请打开浏览器的开发人员控制台,并检查是否显示语法错误。

其次,不幸的是,对于函数名称的选择select很不幸,因为输入元素具有一个select函数,而不是您的函数被调用。 为了避免这种情况,请重命名您的函数(例如radioSelect )并相应地调用它( onclick="radioSelect(this);" )。

同样,您的test功能位于脚本元素之外,这不是一个好主意。

您的代码中有很多语法错误。 并且在函数中选择后不需要(btn)。 您省略了一些分号,尤其是测试警报之后的分号。

此代码有效

 <head> <script> function select() { var1 = document.getElementById("radio1"); var2 = document.getElementById("radio2"); var3 = document.getElementById("radio3"); if (var1.selected === true) { document.myform.action = "A.html"; } else if(var2.selected === true) { document.myform.action = "B.html"; } else { document.myform.action = "C.html"; } } function test() { alert('Testing'); } </script> </head> <body> <br> <br> <br> <!-- <input type="radio" id="radio1" name="project_type" value=0 checked onclick="alert('yes')"><label>Projects I own</label> --> <input type="radio" id="radio1" name="project_type" value=0 checked onclick="select();"> <label>Projects I own</label> <br> <input type="radio" id="radio2" name="project_type" value=1 onclick="test();"> <label>Projects I manage</label> <br> <input type="radio" id="radio3" name="project_type" value=1 onclick="select();"> <label>Projects I can edit</label> </body> 

这是一个小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM