2010-06-11 143 views
0

謝謝你們。我接受你的建議並修改腳本如下。現在看來工作。javascript驗證郵編正則表達式

<script src="jquery-1.4.2.min.js" type="text/javascript"></script> 
<script> 
$(function(){ 
var pat=/^[0-9]{5}$/; 
if (!pat.test( $('#zip').val() )) 
{$('#zip').after('<p>zip is invalid</p>');} 
}) 
</script> 

zip (US only) <input type="text" name='zip' id='zip' maxlength="5"> 
+0

如果你沒有閱讀下文,*它是沒有意義的'append'什麼輸入元素* – Reigel 2010-06-11 06:37:20

回答

2

.val需求是.val()
和使用.after().before()而不是.append()

var pattern = /^[0-9]{5}$/; 
if (!pattern.test($('#zip').val())) { 
    $('#zip').after('<p>zip is invalid</p>'); 
} 
+0

+1你明白了,把任何東西都添加到'input'元素是沒有意義的...... – CMS 2010-06-11 05:49:46

0

拉鍊是無效的,應放在引號中

和.VAL需求是.VAL()

<script> 
    pattern=/^[0-9]{5}$/; 
    if (!pattern.test($('#zip').val())) 
    { 
    $('#zip').val($('<p>',{html: "zip is invalid"})); 
    } 
</script> 
+0

'。追加()'''元素? – Reigel 2010-06-11 05:44:09

+0

哦..是的,我只是看着它的結構..我會調整代碼,好眼睛! – 2010-06-11 05:59:10

0

空出來,所以你可以看到什麼是錯的..

pattern=/^[0-9]{5}$/; 
if (
    !pattern.test( $('#zip').val() ) 
) 
{ 
    $('#zip').after(
     $('<p>',{html: "zip is invalid"}) 
    ); 
} 

val()和「zip is valid」。另外,除非在函數範圍內,否則var是無用的。

(function() { 
    var pattern=/^[0-9]{5}$/; 
    if (
     !pattern.test( $('#zip').val() ) 
    ) 
    { 
     $('#zip').after(
      $('<p>',{html: "zip is invalid"}) 
     ); 
    } 
})(); 

現在pattern只是該功能的本地功能,沒有別的。在CMS的例子中,它仍然是一個全球性的,除非你在代碼片段中使用它,並在實際功能中使用它。

+0

'.append()'on''元素? – Reigel 2010-06-11 05:46:10