求教:js表单验证问题和ajax用户名验证问题

qiqizz 2012-11-23 02:57:48
js表单验证,用onblur来触发,然后用innerHTML显示信息,我都会,但是如何在验证失败时防止提交?
ajax用户名验证,也是同样的问题。
还有,同一个input元素,onblur,会首先触发js验证还是ajax验证?
...全文
285 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiqizz 2012-11-29
  • 打赏
  • 举报
回复
引用 2 楼 mizuho_2006 的回复:
验证失败时写一句 return false;表单就不会提交了。 先在前台进行JS验证,为了防止客户端禁用javascript,要在后台进行服务端验证。
是不是onsubmit=return check(),check()里面有return false,那Ajax怎么办,也return false?
打油的程序员 2012-11-25
  • 打赏
  • 举报
回复

jQuery(document).ready(function(){ 	
	//提交验证
	var validator =jQuery("#form").validate({  //onblur,onchange触发	    
	    submitHandler: function(form){},  
	    rules: {          //定义验证规则,其中属性名对应为表单的name属性  	      
	    	code:{
	        		required:true,
                                maxlength:3	,

	        		remote:{ 
						url:"systemParametersCodeIsUnique.html" ,
						type:"post" ,
						data:{
							
							opttype:'1',
							systemParametersId:function (){
								var opttype = '${opttype}';	
								if(opttype=="update" || opttype=="view" ){
									return "${systemParameters.id}"
								}else return "0";
							},
							code:function(){return getVal("code");}					
						} 
					}	   
	        		
		    }				
	    },	
	    messages: {	
		    code: {remote:"已经存在"}  
		    		    
		},         
	    highlight: function(element, errorClass) {  //针对验证的表单设置高亮  
	           jQuery(element).addClass(errorClass);  	           
	    },
	    success: function(label) {    	    	
             label.html('<img id="correct" src="images/tick.png" width="16" height="16" alt=".">');    
        },
	    errorPlacement: function(error, element) {  //验证消息放置的地方  	   	  	        
 	             error.insertAfter(element);
 	    }
	}); 
});
使用jquery.validate.js插件 function save() {//submit按钮点击事件再次触发 jQuery.watermark.hideAll(); //框架验证 var validator = jQuery("#form").validate(); var f1 = validator.form(); if(f1==false)return false; }
Giberson1 2012-11-24
  • 打赏
  • 举报
回复
防止提交可以再你的form标签中添加:onsubmit="return check()"

 <form action="" onsubmit="return check()" >
 </form>
然后check()方法里可以做各种验证。 onblur会先触发js验证。
qiqizz 2012-11-23
  • 打赏
  • 举报
回复
function checknickname(){ var obj1=document.getElementById('msg1'); if(document.form1.nickname.value.length<2||form.nickname.value.length>20){ obj1.innerHTML="nickname is too long or too short"; document.form1.submit1.disabled=true; } else { obj1.innerHTML="ok"; document.form1.submit1.disabled=false; } } 这是我写的检查昵称长度的代码,但是很奇怪,当昵称合适的时候,不显示"ok",提交按钮也没恢复,怎么回事?
qfgyd2004 2012-11-23
  • 打赏
  • 举报
回复
一般应该做两次验证,在提交之前应该再验证一次,如果不通过就不能提交,应该先触发非空验证,然后触发ajax验证。
mizuho_2006 2012-11-23
  • 打赏
  • 举报
回复
验证失败时写一句 return false;表单就不会提交了。 先在前台进行JS验证,为了防止客户端禁用javascript,要在后台进行服务端验证。
gua84607583 2012-11-23
  • 打赏
  • 举报
回复
验证失败时吧提交按钮变灰,或者隐藏提交按钮!

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧