2010-06-11 4 views
0

Спасибо, ребята. Я принимаю ваши советы и изменяю сценарий следующим образом. Теперь это работает.javascript validate zip регулярное выражение

<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

ответ

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

0

почтовый недействителен должен быть заключен в кавычки

и .val потребности быть .val()

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

'. append() 'on' 'element? – Reigel

+0

oh .. да, я просто смотрел на его структуру .. я подкорректирую код, хороший глаз! –

0

Space это так, вы можете увидеть, что случилось ..

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 '' element? – Reigel

Смежные вопросы