为了账号安全,请及时绑定邮箱和手机立即绑定

jq生成的表单为什么不能验证呢?要怎么样才能实现验证呢?

jq生成的表单为什么不能验证呢?要怎么样才能实现验证呢?

未来99 2018-09-24 00:17:32
我用JQ生成 了一个表单,做validate验证没有效果,没有反应,要怎么样才可以验证这个表单?下面这是整个页面的代码,直接复制就可以了。<!DOCTYPE html><html><head><meta charset="UTF-8"><title>动态生成表单,无法验证</title><script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script><style type="text/css">.modal_blackout {position: fixed;top: 0;left: 0;right: 0;bottom: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.5);}.modal_overlay {width: 488px; min-height: 339px; position: fixed;left: 430px; top: 40px; background-color: #FFF;border-radius: 20px; color: #333;}.address {top: 20px!important;}.modal_title {padding: 0 40px; margin-top: 10px; position: relative;}.modal_title span {height: 50px; line-height: 50px; font-size: 16px; font-weight: bold;}.Mod_close_btn {position: absolute; top: 16px!important; right: 30px!important;}.Mod_close_btn:hover {position: absolute; top: 12px!important; right: 25px!important;}.modal_inner {margin: 20px 40px 40px 40px; padding-top: 20px;}.Mcontrol_label {float: left; margin-right: 10px; width: 105px; line-height: 35px; text-align: right;font-size: 15px; font-weight: bold;}.Mcontrol_input {float: left; width: 288px;}.P_info {padding: 2px 7px; width: 263px; line-height: 30px; border: 1px solid #BBB; border-radius: 5px;     font-size: 15px;   color: #444; outline: none;}.city {margin-right: 14px; margin-top: 3px; padding: 0 5px; width: 60px!important; line-height: 25px!important;font-size: 12px;}.errorHint {margin: 10px 0; width: 100%; height: 18px; font-size: 12px; color: red; float: left;}.control_input {float: left; margin: 20px 120px 40px 120px;}.bind_btn {margin: 0 10px; width: 60px; height: 35px; border-radius: 18px; font-size: 15px; outline: none;cursor: pointer;}.bind_confirm {color: #FFF; background-color: #26E4B5; line-height: 35px;}.bind_confirm:hover {background-color: #18B991;}.bind_cancel {border: 2px solid #BBB; background-color: #FFF;}.Detailed_ad {padding: 2px 6px; border: 1px solid #BBB; border-radius: 5px; outline: none;  box-sizing: border-box;resize: none;}.address_error {margin: 3px 0!important;}</style><script type="text/javascript">$(document).ready(function() {show_Bmodal("#change_PWD");close_bind('.Mod_close_btn');close_bind('.bind_cancel');Bform_request('#cPWD_btnC');});var modal_overlay = '<div class="modal_blackout"></div><div class="modal_overlay"><div class="modal_title"><span></span><a href="javascript: void(0)" class="Mod_close_btn"></a></div><div class="modal_inner"><form action="" class="modal_dialog" id="BPWD_F"><div class="control_input"><input type="submit" class="bind_btn bind_confirm" value="确定"><input type="reset" class="bind_btn bind_cancel" value="取消"></div></form></div></div>';var modal_dialog = '<div class="Mform_group"><label class="Mcontrol_label"></label><div class="Mcontrol_input"><input type="text" class="P_info" value=""><div class="errorHint"></div></div></div>';//动态生成的修改密码表单function show_Bmodal(el) {$(el).click(function() {$(".right-container").append(modal_overlay);var html = '';for (var i = 0; i < 3; i++) {html += modal_dialog;}$('.modal_title>span').text('修改密码');$(".bind_confirm").attr({id: 'cPWD_btnC'});$(".modal_dialog").prepend(html);$(".Mform_group").eq(0).find('.Mcontrol_label').text('输入原始密码:');$(".P_info:eq(0)").attr({type:'password', id:'old_PWD', name:'old_PWD', placeholder:'输入密码'});// $(".Mform_group").eq(0).find('.errorHint').text('请输入6-16位密码,区分大小写,不能使用空格!');$(".Mform_group").eq(1).find('.Mcontrol_label').text('输入新密码:');$(".P_info:eq(1)").attr({type:'password', id: 'new_PWD', name: 'new_PWD', placeholder:'输入密码'});// $(".Mform_group").eq(1).find('.errorHint').text('请输入6-16位密码,区分大小写,不能使用空格!');$(".Mform_group").eq(2).find('.Mcontrol_label').text('确认新密码:');$(".P_info:eq(2)").attr({type:'password', id: 'sure_PWD', name: 'sure_PWD', placeholder:'再次输入密码'});// $(".Mform_group").eq(2).find('.errorHint').text('请输入6-16位密码,区分大小写,不能使用空格!');});} // 关闭窗口function close_bind(el) {$(".right-container").delegate(el, 'click', function() {$(".modal_blackout").remove() && $(".modal_overlay").remove();});}//表单的数据请求function Bform_request(obj) {$(".right-container").delegate(obj, 'click', function(event) {event.preventDefault();$.ajax({url: '/path/to/file',type: 'post',dataType: 'json',data: {old_PWD: $("#old_PWD").val(),  new_PWD: $("#new_PWD").val(),  sure_PWD: $("#sure_PWD").val()},});});}//表单的表单验证***********这里没有验证反应,要怎么处理呀????function BForm_Val() {$("#BPWD_F").validate({debug:true,rules:{old_PWD:{minlength:6,maxlength:18,required:true,},new_PWD:{minlength:6,maxlength:18,required:true,},sure_PWD:{minlength:6,maxlength:18,required:true,},},errorElement:"div",});}</script></head><body><div class="right-container"><input type="submit" id="change_PWD" value="修改密码"></div></body></html>
查看完整描述

2 回答

已采纳
?
慕勒0069038

TA贡献143条经验 获得超39个赞

检查下 validate是否选择了 正确的 jquery选择器选择的form 

检查下 validate中语法有没有错误, ( 比如 , 变成了 ;  等等)

检查下 validate 校验中 需要校验的名称 和 所需验证的input的name 是否匹配 

查看完整回答
反对 回复 2018-09-26
  • 未来99
    未来99
    全都检查过了,都没有问题。用相同的HTML结构试了一下,就可以。
  • 慕勒0069038
    慕勒0069038
    哦 我懂了 你是说你动态生成了一个表单 ,然后用validate校验, 那么 可以告诉你 , validate 的绑定事件是属于绑定到节点的,而且是已有节点的, 具体你可以看下 jQuery的bind和on 之类的区别 , 你可以 先生成表单,然后再把validate校验加在后面执行。 类似于 $(document).ready(function(){ })
  • 慕勒0069038
    慕勒0069038
    $(document).ready(function(){ (function(){ xxxxx(创建了表单); xxxxxx(对表单进行validate校验); })(); })
点击展开后面5
?
WingMeng

TA贡献32条经验 获得超13个赞

这个锅 jQuery 可不背……

查看完整回答
反对 回复 2018-09-26
  • 2 回答
  • 0 关注
  • 1065 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信