单击时未触发onclick事件

时间:2014-06-14 14:49:42

标签: javascript

我正面临着一个小问题..单选按钮的onclick动作未执行。我也试过onchange事件,但没有用..

   <label><input type="radio" name="search_type" id="search_type" value="name" onchange="by_name()">Enter the Name </label> 
  <input name="tag" type="text" id="search" maxlength="30">                       
  <label><input type="radio" name="search_type" id="search_type" value="all" onchange="all()">All</label>

并点击全部,

  function all()
   {
       window.alert('hi');
    }

你可以帮我提一下你的建议..(js文件也是链接的)

3 个答案:

答案 0 :(得分:0)

编辑:它适用于all Demo

首先,您使用两个具有相同ID的不同输入。你不能这样做。

其次,尝试从JS中分离HTML:DEMO

<强> HTML:

<label>
    <input type="radio" name="search_type" id="search_type" value="name">Enter the Name</label>
<input name="tag" type="text" id="search" maxlength="30">
<label>
    <input type="radio" name="search_type" id="search_type2" value="all">All</label>

<强>使用Javascript:

var input1 = document.getElementById('search_type');
var input2 = document.getElementById('search');
var input3 = document.getElementById('search_type2');

input1.onclick = function(){
    alert('input1');
};
input2.onclick = function(){
    alert('input2');
};
input3.onclick = function(){
    alert('input3');
};

为什么要将它们分开?

它是现代的,如果你有很多HTML,如果你把它放在一个单独的文件中,你就更容易阅读它。

答案 1 :(得分:-1)

$(document).ready(function() 
        {

            $('body').click(function()
            {
                alert('hi');
            });
         });

这里更改&#34; body&#34;标记到要使函数发生的对象的ID。 确保您使用的是Jquery,否则无法使用

答案 2 :(得分:-1)

重命名该功能。 all在许多浏览器中具有预定义的含义,当在内部事件属性中使用时,它(有效地,如果不是实际的话)保留关键字。

Non-working version给出&#34; NS_ERROR_ILLEGAL_VALUE:非法值&#34;。

Working version已将all重命名为notall