现在的位置: 首页 > 综合 > 正文

js中的焦点事件问题

2013年03月24日 ⁄ 综合 ⁄ 共 1729字 ⁄ 字号 评论关闭

在web页面中,经常要实现这样一个js功能:鼠标焦点落到输入框内,输入框原有默认值消失,当失去焦点时,如果用户未输入任何内容,怎还是显示默认值。

 

今天在修改一页面时,发现一个问题:在页面是可以实现上述功能,但提交表单后,由于在服务端数据校验不通过时(为测试服务端的校验功能,屏蔽了前端的js校验。),alert 弹提示框后,再history.back(-1);返回表单填写页时,表单中默认内容是用户输入的不合法的内容(到此处没问题),但是当鼠标焦点落到输入框内时,原有不合法的内容就消失了,用户得从头输入,用户体验不太好,查看了原js,是由一个函数完成的(此函数的没看太明白),如下:

 

屏蔽了上述函数,对各input元素,添加了 Onblur(失去焦点)、onfocus(获得焦点)的事件响应。大概思路是:

blur时,检查元素的值是否等于'',如果是,就修改其值为默认值,如果不是就不做操作

focus时,检查元素的值是否等于默认值,如果是,就修改其值为'',如果不是就不做操作

 

具体代码如下:

1、html页面中(部分)

 

2、js

 

这样就可以实现最开始的功能了,这样写有2个缺点:

1、input元素默认值内容修改时,js将失效

2、每添加一个input都需要添加相应的判断代码

 

---- 以后哪天找到更好的方法,再慢慢改进!

抱歉!评论已关闭.