2014-11-06 79 views
0

我的第一篇文章!jquery模式匹配轉義不顯示自定義錯誤消息

我一直在努力與基本上都是用於建築2 jQuery的變量:

  1. 確保正則表達式模式之後
  2. 比較領域,而不是提交直到都匹配。

它加載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說的代碼是罰款,按提交按鈕時,它說:「你必須使用此格式」 ...所以檢查模式似乎沒問題......但它不顯示自定義錯誤消息。

在過去的4個小時裏,我一直拉着我的頭髮。

任何和所有幫助最受歡迎!!!!

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

+0

如果你有一個JSFiddle,然後鏈接它! – elzi 2014-11-06 23:11:15

+0

我沒有jsfiddle帳戶。剛剛在那裏測試了核心代碼。試圖打開一個,因爲你的帖子,但它似乎有問題,他們的註冊。不停地告訴我有人的郵件已經註冊,我不是,然後當我嘗試重置密碼說它沒有帳戶!??! AArrrggghhh ... – James 2014-11-06 23:21:58

+0

http://jsfiddle.net/JamesMarz/db1qa83f/ – James 2014-11-06 23:30:25

回答

0

我解決了這個用另一種方法。基本上我認爲使用變量的自定義錯誤消息動態編寫changevalidity是一個問題。

實際上,即使你取出變量(複製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; 

}

返回假的,當然是防止被提交表單:)

好球員。第一篇文章,實際上也變成了我的第一個解決方案。可惜我無法爲自己+1? ;)

相關問題