表单提交前验证

目的:

表单提交前,对表单内容先做检查处理,若不符合要求,则禁止表单提交并做相应提示。

实现:

方式一,form标签中使用onsubmit=”return chk_form();”

方式二,提交按钮使用onclick=”return chk_form();”

方式三,把提交按钮改成普通按钮,对该按钮绑定js事件,使用$(‘#form’).submit()

注意:

以上提到的检查函数chk_form(),不能写在jquery的 $(function(){...}); 中,否则可能不会执行,可以单独写在一个 <script>...</script> 中

a元素绑定onclick事件之重复多次响应问题

若使用以下方式给a元素绑定onclick事件,可能会出现多次响应的现象,即点第一次时响应一次,点第二次时响应两次,点第三次时响应三次…

可以使用以下方式解决:

 

javascript中莫名其妙的错误Uncaught SyntaxError: Unexpected token )

JQuery类库版本:jquery-1.7.1.min.js

JQuery代码:

chrome中的错误报告:

firefox中的错误报告:

说明:

从代码上看,没有任何语法错误,但浏览器始终提示那个“不存在的错误”。

解析:

注释内容和JS代码放在同一行,导致某种错误。

解决方法:

将注释内容从代码行移出,可单独放一行。如,

Javascript或submit按钮刷新当前页失效

现象:

最近为老板做个产品信息管理的小程序,在做搜索那块时发现多次点击表单的提交按钮(表单内容没变),或调用javascript的window.location.href=window.location,window.reload()等方式都无效(页面内容无刷新,尽管标签页看似重新加载了),但使用F5刷新有效。

场景再现:

HTML代码:

操作:第一次在输入框中输入一些信息时,提交成功,页面刷新,输入框被清空;第二次输入相同内容时,提交失败,页面内容未刷新,输入框内容不消失。

原因:

Form表单的action属性值是“#”(换用AJAX方式提交表单)。

解释:

地址栏中,若地址未发生改变,且最后一个字符是“#”的话,浏览器是不会重新加载新页面的,尽管调用了javascript的刷新当前页的方法(window.location.href=window.location,window.reload()等)。

解决:

既然不用Form表单的自带提交功能,而改用AJAX等方式提交的话,去掉action属性及其属性值即可。