J'ai un problème étrange avec la validation, je suis en train d'écrire sur un formulaire. C'est un nom d'utilisateur' bouton à côté de l'entrée. L'entrée valeur par défaut est le nom d'utilisateur par exemple "betamax'. Lorsque j'appuie sur 'Vérifier le nom d'utilisateur' il passe la regex et envoie le nom d'utilisateur pour le serveur. Le serveur se comporte comme prévu et retourne '2' à dire le code javascript qui ils soumettent leur propre nom d'utilisateur.
Puis, lorsque je clique sur le bouton de nouveau, la regex échoue. Rien n'est envoyé au serveur, évidemment, parce que la regex a échoué. Si j'appuie sur le bouton de nouveau, la regex passes et puis le nom d'utilisateur est envoyé au serveur.
J'ai littéralement ne peut pas comprendre ce qui permettrait de faire cela! Il ne fait aucun sens pour moi!
Edit: j'ai testé le problème dans Firefox et Chrome (mac)
C'est mon code:
$j("#username-search").click(checkUserName);
function checkUserName() {
var userName = $j("#username").val();
var invalidUserMsg = 'Invalid username (a-zA-Z0-9 _ - and not - or _ at beginning or end of string)';
var filter = /^[^-_]([a-z0-9-_]{4,20})[^-_]$/gi;
if (filter.test(userName)) {
console.log("Pass")
$j.post(
"/account/profile/username_check/",
{ q: userName },
function(data){
if(data == 0) {
$j("#username-search-results").html("Error searching for username. Try again?");
}
else if(data == 5) {
$j("#username-search-results").html(invalidUserMsg);
}
else if(data == 4) {
$j("#username-search-results").html("Username too short or too long.");
}
else if(data == 2) {
$j("#username-search-results").html("This is already your username.");
}
else if(data == 3) {
$j("#username-search-results").html("This username is taken.");
}
else if(data == 1){
$j("#username-search-results").html("This username is available!");
}
});
} else {
console.log("fail")
$j("#username-search-results").html(invalidUserMsg);
}
return false;
}
Le code HTML:
<input name="username" id="username" value="{{ user.username }}" />
<input type="button" value="Is it taken?" id="username-search">
<span id="username-search-results"></span>