可以不阻止默认事件,但是覆盖一下onsubmit方法,在onsubmit的handler里阻止默认事件,当浏览器调用submit事件时,在函数里去调用ajax异步提交,这样如果没通过验证的话,是不会调用submit事件的,不知可行否?总之让浏览器先验证,再提交。
当然需要,因为前端的JS验证代码如果在用户端浏览器被禁用了,那么就不会执行该js代码进行验证,也就相当于没有做非空验证,如果这时候将数据直接在服务器端使用,那么情况可想而知;一句话,永远不要轻易相信客户提供给你的数据;当初我们的培训导师说过,你只要把使用你软件的客户当做傻瓜,思考的问题自然多于常人。<input type="text" id="oneWord" value=""/><script type="text/javascript">
var oldValue = ''
document.getElementById('oneWord').onblur = function(){
if(!this.value.match(/^[a-zA-Z]$/)){
this.value = oldValue
}
oldValue = this.value
}
</script>