Jquery模式匹配转义不显示自定义错误消息

时间:2014-11-06 23:09:09

标签: jquery

我的第一篇文章!

我一直在努力构建基本上用于的构建2 jquery变量:

  1. 确保遵循正则表达式模式
  2. 比较字段,直到两者都匹配才提交。
  3. 以HTML格式加载的第一个字段已更改,第二个字段已动态添加:

    $('#pass').on('input', function () {
       $("#pass").replaceWith(ba);
       $("#prd").html('New Account Password<span class="small">Your New Account Password</span>');
       $("#pass").focus();
       var newTextBoxDivc = $(document.createElement('div')).attr({
           "id": "TextBoxDivc"
       }).css({
           "display": "inline",
           "position": "relative"
       });
       newTextBoxDivc.after().html(bb);
       newTextBoxDivc.appendTo("#op");
    });
    
    var bb = ("<label>Confirm New Password</label><span class='small'>Confirm Your New Password</span><input type='text' name='passa' id='passa' required pattern='(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])\\w{6,20}' onchange='this.setCustomValidity(this.validity.patternMismatch ? \'Your passwords do not match please enter the same password as above\' : \'\');' oncopy='return false' onpaste='return false' autocomplete='off' autocorrect='off'>");
    
    var ba = ("<input type='text' name='pass' id='pass' required pattern='(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])\\w{6,20}' oncopy='return false' onpaste='return false' autocomplete='off' autocorrect='off' onchange='this.setCustomValidity(this.validity.patternMismatch ? \'To create a strong password for your account use a mix of at least 6 characters that includes at least one UPPERCASE letter (A-Z) and at least one number (0-9)\' : \'\'); if(this.checkValidity()) formEley.passa.pattern = this.value;'>");
    

    JFiddle说代码很好,当按下提交按钮时它确实说&#34;你必须使用这种格式&#34; ...所以对模式的检查似乎没问题......但它&#39 ; s不显示自定义错误消息。

    过去4个小时一直把头发拉出来。

    任何和所有帮助最受欢迎!!!!

    http://jsfiddle.net/JamesMarz/db1qa83f/

1 个答案:

答案 0 :(得分:0)

我用另一种方法解决了这个问题。基本上我认为使用变量的自定义错误消息动态编写变量值是一个问题。

实际上,即使你拿出变量(复制bb和ba的html)而不是直接将它写入代码中它仍然是不行的...所以这可能只是一个错误或限制这一次。

任何人都有任何意见。随意跳进去分享。

相反,我把它全部剥离并在一个函数中执行检查。

例如:

$(document).ready(function() {
var email = $('#mail').val();
var email_regex = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;

从那里开始执行检查。

if (!email.match(email_regex) || email.length == 0) {
$("#mail").focus();

然后将错误消息直接写入页面。

$(".holdcontent").html("<h1>Error</h1<p class='p4'>Please check your email address and verify that you have entered your email details correctly.</p>");
return false;

}

返回false当然是为了阻止提交表单:)

好的伙计们。第一篇文章,实际上也变成了我的第一个解决方案。可惜我不能为自己+1? ;)