不搞Web开发好多年,但最近实验室接了湖北省科技厅的一个Web项目,只得硬着头皮重新开始自己的Web开发之旅。做起来果然捉襟见肘,用的还是自己从未接触过的webwork框架。Web技术发展得太迅速,想想自己曾用过的Struts 1.0,感觉自己逐渐在被新技术所淘汰。
更不爽的是,今天居然被一个javascript的问题折腾了近一个小时,要实现的功能仅仅是:当点击链接时弹出确认对话框,选择确定时删除数据,选择取消时不处理。
如果是直接在HTML里写代码,那么使用<a href="删除的action+传递参数" onclick="return confirm('确定要删除吗?')">就可以解决,但由于开发的需要,我得将这些代码在<% %>里通过out.println("")输出来。这样问题就来了,折腾了好久,不管是将return confirm()写在另一个javascript函数里然后再调用这个函数,还是直接写在onclick里都不会弹出对话框。正当我几近绝望准备放弃时,问题终于解决了,原来都是引号惹的祸。
正确写法是:out.println("<a href='删除的action+传递参数' onclick=\"return confirm('确定要删除吗?')\">删除</a>") ;
仔细分析:问题就出在\",这也是我被逼无奈的尝试,不小心成功了,呵呵。这里你不能用'或"代替,更不能去掉,因为双引号已经存在,而return confirm()又必须要被双引号括起来,所以就只能用\"(代表双引号中的双引号)。
希望自己的一点经验能让遇到同样问题的同道人士少转弯路。