2017-07-04 87 views
0
$(document).ready(function(){ 
    $("#name").blur(function(){ 
    var name = $("#name").val(); 
     if ($(this).val().match('^[a-zA-Z]{3,16}$')) 
    { 
    $("#check_name").html("Good Name").hide(); 
    } 
else { 
    $("#check_name").html("That's not a name."); 
    } 

它正在插入值,如果它是錯誤的。當我們很快提交form.need幫助時,它不驗證數據。jquery在提交表單時不工作

+0

據驗證上onblur事件數據,但不能同時提交表單 – ravneet

回答

0

嘗試用正則表達式/pattern/g

$(this).val().match(/^[a-zA-Z]{3,16}$/g) 

而不是

$(this).val().match('^[a-zA-Z]{3,16}$') 

它不驗證?

因爲你不是用模式

$(document).ready(function(){ 
    $("#name").blur(function(){ 
    var name = $("#name").val(); 
     if ($(this).val().match(/^[a-zA-Z]{3,16}$/g)) 
    { 
    $("#check_name").html("Good Name").hide(); 
    } 
else { 
    $("#check_name").html("That's not a name."); 
    } 
+0

.match( '^ [A-ZA-Z] {3,16} $')也能正常工作 –

+0

據驗證數據onblur事件,但不提交表格時 – ravneet

1

匹配字符串中,你需要做的其實驗證表單上。

https://jqueryvalidation.org/

在您添加了jQuery驗證,並設置它可以使用

<form id="myForm"> 
<input type="submit" value="Send"/> 
</form> 

<script> 
    $("#myForm").submit(function(){ 
     $("#myForm").validate(); 
    }; 
</script> 
+0

可以將它添加到我的code.that上面給出? – ravneet

0

這將工作:

$(function(){ 
    $("#name").blur(function(e){ 
    var name = $(e.target).val();  
    if (name.match('^[a-zA-Z]{3,16}$')) { 
     $("#check_name").html("Good Name").hide(); 
    }else { 
     $("#check_name").html("That's not a name.").show(); 
    } 
    }) 
}); 

如果你還想看 「好名字」 ,刪除.hide();)

+0

它正在驗證onblur事件上的數據,但不提交表單時 – ravneet

0

使用.test代替.match來檢查職位倫斯。另外,你的正則表達式是否正確,它會處理每個名字嗎?在正則表達式測試器上的某處驗證正則表達式。

Https://stackoverflow.com/questions/8606117/javascript-regexp-using-val-match-method

+0

它正在驗證onblur事件上的數據,但不提交表單時 – ravneet

+0

它不會默認。你將不得不綁定驗證代碼以形成提交事件。 – Amit

+0

你能告訴我把它添加到我的代碼中嗎?實際上它是新的。 – ravneet