realazy


JavaScript习作–优化IE的表单交互

说起网页标准(Web Standards),我一直以来都只关注结构(markup)和表现(presentation),很少涉及行为(behavior),因为这涉及到编程,呵呵,不怕见笑,俺是半路出家了,对编程始终不得法门而入。

工作以来,接触牛人,耳濡目染,近朱者赤,不知不觉也知道了些结构语法什么的。上周某日无聊至极心血来潮,决定搞搞JavaScript看看。嘿嘿,想不到,我胡乱写了一通,竟然达到了我预想的效果!于是我抛下看了将近一个月的色彩管理啊,设计什么的啊,抱起了那本去年O’reilly送我的《JavaScript权威指南(第四版)》,一看入迷,那个DOM,对于手写XHTML代码的我来说,太熟悉了……于是上班途中的公交也不忘K一下她。

几年过去了……哦不,几天过去了……

当前的IE并不支持属性选择器,所以对于表单,你得不厌其烦地为每种类型(type)加上相应的class。最让人不能接受的是,IE不支持:focus,所以不得不求助于JavaScript。

我做了一个表单例子,使用属性选择器input[type="text"]等及其伪类:focus实现我想要的效果,在没有任何JavaScript的情况下,Firefox, Opera工作完美。但是,你知道我要说什么了,对,是IE,没有丝毫的作用。在我加入额外的class的情况下可以为IE进行样式化,然而遗憾的是,要支持focus行为,CSS再也无能为力,所以,让JavaScript出马吧。

我的实现思想是这样的。对于表单的每种typeinput,使用JavaScript为其添加相应的class,我的例子中,我设置class的名字等于其type,即type="text"则其class为class="text",依此类推。而其fucos的效果则增加一个相应的class来实现,命名就是type加上focus这个单词,即type="text"则其fucos的class为class="textfocus",依此类推。

好了,那么,我就用onfocusonblur事件(events)来实现了。当然,这只针对IE,所以在JavaScript中判断了一下浏览器。嗯,这就是今天的习作:http://realazy.org/lab/enform/(用IE看哦)。各位大牛有心的话不妨看看,多指正和优化一下,感激不尽 :)

继续努力学习中……K书again….

10 Responses to “JavaScript习作–优化IE的表单交互”

  1. ieidea Says:

    很不错勒,能当“模版”用啦~~

  2. dulao5 Says:

    不错,就是这么写滴~~

  3. gobiship Says:

    很实用的

  4. vivi Says:

    事实上我对你这个blog程序的兴趣比你的文章还多。。

  5. realazy Says:

    vivi,这是用WordPress搭建的,皮肤是我自己做的,如果您对我blog的皮肤感兴趣,我可以提供给您。

  6. op Says:

    偶想要你的皮肤(css\image)和表单交互的css,不知可否给我发一份?(当然,我可以自己下载,但最关键的是我想用*^_^*)我会保留你的署名和链接。3x

  7. storm Says:

    你的习作很好,很实用啊,能不能给我一份代码?谢了!我的邮箱是
    storm163huang@163.com

  8. beginer Says:

    你的习作真的很不错,也能给我一分代码吗?
    cbzqh@126.com
    谢谢!将继续支持你!

  9. dachy Says:

    有个小问题:focus进textarea时它会往左偏3px

  10. realazy Says:

    这个习作很烂的,你还不如直接看我最新那篇 小试牛刀——一篇jQuery小教程 :)

Leave a Reply


realazy (懒到死) is proudly powered by WordPress | Entries (RSS) and Comments (RSS)