3
回答
jquery validate form 不提交
【腾讯云】学生服务器套餐10元/月 >>>   
$('#agreenBtn').click(function(){
		$('form#agreefm').validate({
			rules : {
				money:{
					required : true,
					number:true,
					range:[0,1000]
				}
			},
			messages : {
				money:{
					required : '请填写赔偿金额.',
					number:'只接受数字.',
					range:'范围0~1000.'
				}
			},
		errorElement: 'span',
		errorClass: 'validate-has-error',
		highlight: function (element) {
				$(element).closest('.form-group').addClass('validate-has-error');
			},
		unhighlight: function (element) {
			$(element).closest('.form-group').removeClass('validate-has-error');
		},
		errorPlacement: function (error, element)
		{
			if(element.closest('.has-switch').length){
				error.insertAfter(element.closest('.has-switch'));
			}else
			if(element.parent('.checkbox, .radio').length || element.parent('.input-group').length){
				error.insertAfter(element.parent());
			}else 
			{
				error.insertAfter(element);
			}
		},
		submitHandler : function(form) {
			toastr.success('进入表单提交...');	
			$.post($(form).attr('action'),$(form).serialize(),function(data){
				if(data.flag){
					$('#comagree').modal('hide');
					toastr.success('操作成功.');	
					$('#quer .btn-success').click();
				}else{
					toastr.error(data.msg);	
				}
			},"json");
	
		}
	});

});

上面是Js源码。

正常流程:点击表单提交按钮 触发事件。验证表单。如果为空或者超过超限就给出提示。否则就提交表单。然后根据后台返回的结果进行提示。

--------------华丽的切割线-----------------------

现在问题来了

1.当点提交按钮时。并不会。马上就进行校验。

就是表单什么都不输入。直接点提交按钮。界面。不会有任何错误提示。随便怎么点。就是不弹错误提示。

只有当我把光标定位到输入框,输入一些违反校验规则的内容。才会有错误提示出来。比如 只能为数字,范围超出等提示。

2.在输入框输入数字内容以后。且在允许范围内。点提交按钮。没有触发submitHandler方法。

很是奇怪。做死的点。也不会进这个方法、

-------以上俩个问题。很是纠结。---- 求 大神。解救。。-----








举报
壹爱
发帖于3年前 3回/3K+阅
共有3个答案 最后回答: 3年前

引用来自“jeffsui”的评论

通常valiation是对控件注册事件,也就是你所说的光标获取 焦点的时候,才会被触发。而你却把validation注册到了提交按钮?我觉得问题就在这里。


同意,.validate()方法不能写在click事件中,只需在页面加载的时候调用一次就行了。


你的click事件只需调用form的submit方法就行了。


因为validate是拦截form的submit事件的。

通常valiation是对控件注册事件,也就是你所说的光标获取 焦点的时候,才会被触发。而你却把validation注册到了提交按钮?我觉得问题就在这里。


引用来自“jeffsui”的评论

通常valiation是对控件注册事件,也就是你所说的光标获取 焦点的时候,才会被触发。而你却把validation注册到了提交按钮?我觉得问题就在这里。


引用来自“jarchan”的评论

同意,.validate()方法不能写在click事件中,只需在页面加载的时候调用一次就行了。


你的click事件只需调用form的submit方法就行了。


因为validate是拦截form的submit事件的。
谢了。试了一下。果真是这样的。
顶部