【问题标题】:HTML Input box is not triggering the eventsHTML 输入框未触发事件
【发布时间】:2012-08-23 13:01:55
【问题描述】:

我有以下一点 Javascript:

功能选择(ID,EVT){ var e = (typeof evt != 'undefined') ? evt:事件; e.cancelBubble =真; 警报('错误'); var $toggler = $("#building"+id); if(!$toggler.is(':checked')){ $toggler.attr('checked', true); $("#row"+id).removeClass("selectRow"); $("#row"+id).addClass("selectRow"); } }

我有以下<HTML> 块

<td>
   <select onchange="select(2, event);" name="prefferedAgent396" class="input-small">
       <option value="0">Choose...</option>
       <option value="1" selected=""> Senthil </option>                                    
       <option value="3"> Sunmeet </option>                                    
       <option value="4"> Doesnot Speak English </option>                                    
       <option value="5"> Marcus Fava </option>                                    
   </select> 
</td>
<td>
   <input type="text" onchange="select(2, event);" class="input-mini" id="initial396" name="initial396" value="">
</td>

现在的问题是onchange 事件触发了select 控件的select(2, event),而不是input 控件。当我尝试使用alert 框时,我调用select(),它起作用了,但它不仅仅是调用select()。我尝试过onKeyUp,但它给出了一种奇怪的行为,即在我键入时替换文本。我在这里做错了什么?

【问题讨论】:

  • 我会将该警报移动到您的选择功能的顶部,以防您的取消气泡代码中有某些内容被破坏。当您触发此事件时,您是否查看过控制台报告的内容? (例如在 Chrome 开发工具或 Firbebug 等中)
  • 没有错误什么都没有。我检查了控制台。我也删除了取消气泡代码。没有运气!!

标签: javascript jquery input jquery-events


【解决方案1】:

这非常很奇怪。如果您将函数从 select 重命名为 select_,它将起作用。但由于您已经在使用 jQuery,您可以使用以下内容而不是使用内联 change 处理程序:

$("#prefferedAgent396,#initial396").change(function (e) {
   select(2, e);
});

这是一个DEMO。

【讨论】:

  • 我之前也遇到过类似的问题,但这次我不想再想了。谢谢!!
猜你喜欢
  • 1970-01-01
  • 2021-12-30
  • 2019-12-28
  • 1970-01-01
  • 2017-07-10
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多