2012-11-14 93 views
0

我有兩個輸入字段。名稱和其他是驗證名稱。我想添加一些驗證。如果我的第一個輸入包含'robert',那麼用戶只能在下一個字段中輸入「robert」。但它沒有給我想要的結果使用jquery自定義驗證

<head> 
<script type="text/javascript"> 
$(function(){ 
var jn= []; 
$('#first').keypress(function(e){ 
var d= e.charCode || e.keyCode; 
jn.push(d)}) 

var jm=[];  
$('#second').keypress(function(e){ 
var f= e.charCode || e.keyCode; 
jm.push(f) 
for(i=0;i<jn.length;i++){ 
for(z=0;z<jm.length;z++) 
{ 
if(jn[i]==jm[z]){ 
alert('hiii')}}}}) 
}) 
</script> 
</head> 
<body> 
name 
<input type="text" id="first" /> 
verify name 
<input type="text" id="second" /> 
    </body> 
+2

你錯過了一堆分號,你要麼全部要麼全都沒有,但混合不好。 – elclanrs

+0

我不確定是否需要完全禁止輸入不匹配的字符,或者在用戶完成第二個字段的編輯後驗證是否相同。如果是前者,我的解決方案可以。如果是後者,阿卜杜勒的答案就足夠了。 –

回答

1

我相信你已經在想這件事了。您的解決方案也不適合編輯(由於必須跟蹤鍵碼數組)。嘗試這樣的事情

http://jsfiddle.net/qccQZ/3/

$("#field2").keypress(function(e){ 
    var f1 = $("#field1").val(); 
    var len = $(this).val().length; 
    var str = String.fromCharCode(e.charCode) 
    if(f1.charAt(len) != str) return false; 
});​ 
+0

這就是我想要的,謝謝 –

+0

太好了。隨意標記它接受,如果它適合您的需求。 –

1
$('#second').blur(function(){ 
if($('#first').val() != '' && ($('#first').val() == $('#second').val())) 
alert('valid'); 
else 
alert('invalid'); 
}); 

測試:http://jsfiddle.net/Dzb8c/

0

我認爲你應該用這個循環

for(i=0;i<jm.length;i++){ 
    if(jn[i]!=jm[i]) 
     { 
     alert('hiii'); 
     } 
    }