2009-06-06 1 views

Antwort

1

Es gibt eine Vielzahl von Möglichkeiten, dies zu implementieren. Hier ist eine.

Die entsprechende HTML würde wie folgt aussehen:

<div><input type="text" id="myInput" /></div> 

Die jQuery so etwas wie dieses würde:

// probably within your jQuery(document).ready(...) function: 
// bind a change event handler to your input 
jQuery("#myInput").bind("change", function(e) { 

    var $this = jQuery(this); 
    var re = /[a-z]/; // here's your regex 
    var imgSrc = "blank.gif"; 

    if (re.test(jQuery(this).val())){ 
     // this is a successful match - green 
     imgSrc = "green.gif";   
    } else { 
     // this is not a match - red 
     imgSrc = "red.gif"; 
    } 

    // make sure we have an image before our input: 
    if(!$this.prev().is("img")) { $this.before("img"); } 

    // set the image to green 
    $this.prev().attr("src", imgSrc); 
}); 

Edit: Bug-Fix + Kommentare

+0

@Jeff Yang, das ist gut. Können Sie sich eine Art vorstellen, wie wir das meiste daraus in eine Methode extrahieren, so dass es nicht so viel wiederholten Code für jedes Feld geben wird? –

2

Es gibt die jQuery Validation plugin, die unterstützt, dass irgendwie. Werfen Sie einen Blick auf das Demo-Formular "Remember the Milk". es hat sofortiges Feedback. Sie würden die Option "success" in der validate() -Methode einrichten, um mehr zu tun, als nur eine negative Rückmeldung zu geben.

0
$(document).ready(AddValidation); 

function AddValidation() 
{ 
    $("#frmadminlogin").validate({ 
     'rules':{ 
      'txtadminemail':{'required':true, 'email':true}, 
      'txtadminpass':{'required':true} 
     }, 
     'messages': { 
      'txtadminemail':{'required':'<img title="Please enter login email." src="../images/error.gif" />', 'email':'<img title="Please enter valid email." src="../images/error.gif" />'}, 
      'txtadminpass':{'required':'<img title="Please enter login password." src="../images/error.gif" />'} 
     } 
    }); 
} 
Verwandte Themen