2010-06-11 7 views
0

Merci les gars. Je prends conseil et je modifie le script comme suit. Maintenant, cela semble fonctionner.javascript valider zip expression régulière

<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

si vous ne l'avez pas lu ci-dessous, * il n'a pas de sens de 'append' quoi que ce soit à un élément d'entrée * – Reigel

Répondre

2

.val a besoin d'être .val()
et utiliser .after() ou .before() et non .append()

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

+1 Vous l'avez, cela n'a aucun sens d'ajouter quelque chose à un élément 'input' ... – CMS

0

zip est invalide devrait être entre guillemets

et les besoins .VAL être .val()

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

'. append() 'on' 'élément? – Reigel

+0

oh .. ouais, je regardais juste la structure de celui-ci .. je vais ajuster le code, bon oeil! –

0

Espace dehors, vous pouvez donc voir ce qui ne va pas ..

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

val() et "zip est valide". En outre, le var est inutile à moins d'une portée de fonction.

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

Maintenant pattern est locale à cette fonction seulement et rien d'autre. Dans l'exemple du CMS, il s'agit toujours d'un global, sauf si vous prenez l'extrait et l'utilisez dans une fonction réelle.

+0

'.append()' sur '' élément? – Reigel

Questions connexes