HTML 输入框未触发事件

Posted

技术标签:

【中文标题】HTML 输入框未触发事件【英文标题】:HTML Input box is not triggering the events 【发布时间】: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 等中) 没有错误什么都没有。我检查了控制台。我也删除了取消气泡代码。没有运气!! 【参考方案1】:

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

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

这是一个DEMO

【讨论】:

我之前也遇到过类似的问题,但这次我不想再想了。谢谢!!

以上是关于HTML 输入框未触发事件的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式选择索引 0(从-1)时,组合框未触发 SelectedIndexChanged

预输入数据列表文本框未重置

IOS不触发文本框输入中文的keyup事件

在网格视图行中输入键文本框未获取 id 选择

android全屏下的输入框未跟随软键盘弹起问题

VBA 帮助触发与输入框相关的事件