我有一个包含大约100个文本框的HTML页面。我目前使用JS事件监听器(模糊)来检测用户何时离开文本框。在事件监听器中,我使用if
语句根据使用的文本框过滤操作,即if id == blah
,if className == blahblah
等。
将onBlur()
放在每个文本框的HTML标记中以便将操作指向特定功能,或者我是否在正确的轨道上,是否会更好的做法?
答案 0 :(得分:1)
塞尔吉奥正确告诉嘿哥们。最好通过DOM方法在脚本元素中使用事件处理程序。
现在,为了简化您的任务,请使用EVENT DELEGATION
只需附上document.body.onchange=detect
function detect()
{
var textboxvalue=event.target.value //event.target point to text box on which blur event fires
}
这个简单的代码将通过冒泡事件来完成您的任务。无需使用任何数组/条件/类/ ids /单独的事件处理程序 “更改”事件与“模糊”事件相同。“更改”仅在textBox的值已更改时触发,因此null /空字符串不适用
答案 1 :(得分:1)
对我来说,生产力是表现之后的首要任务。
既然你是新手,我会推荐像jQuery这样的javascript库。有了这个,您可以做一个简单的声明,将blur
/ keyup
/ change
事件放在所有事件上,并在一个有组织的地方处理它。
我毫不怀疑这可以通过纯javascript来完成,但javascript库的一个主要好处是通过减少行数来提高生产力。
在您的具体情况下,我会在所有$.keyup()
上通过空的css <input>
和class
或if
关闭另一个空的jQuery switch
用于指定子文本框的类:
$('.myEmptyClassThatsOnEachOfThe100Textboxes').keyup(function(){
if($(this).hasClass('myEmptyClassThatsOnEachTextboxOfThisFirstType')){
//do stuff
}
else if(...
})