2009-10-22 5 views
0

J'utilise le plugin de validation de jQuery pour valider un nom d'utilisateur. D'une certaine manière mes données de demande de JSON sont invalides et je ne sais pas pourquoi. Voici le code:Plugin de validation jQuery, appel distant

remote: { 
        url: "blablabla", 
        type: "POST", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        data: '{"username":"' + function() { return $("#username").val() } + '"}' 
       } 

Quand je vérifie la demande, les données JSON ressemble à ceci:

{"username":"function() { 
    return $("#username").val(); 
}"} 

Avez-vous des conseils?

Répondre

0

On dirait que votre fonction n'évalue pas. Pouvez-vous l'exécuter avant l'appel et mettre la valeur de retour réelle dans les données?

+0

Si je réécris comme ceci: "data: '{ "nom d'utilisateur":"' + getUserName() + ' "} ", alors cela fonctionne bien, mais j'aimerais vraiment utiliser une fonction anonyme dans ce cas. – Krassi

+0

exécutez-le par le mal eval dans onSuccess – Bostone

+0

Hmmm - Je me demande si cela fonctionnera 'data: '{" nom d'utilisateur ":"' + fonction() {return $ ("# nom d'utilisateur"). Val()} + '" }() '' – Bostone

0

Pour écrire une auto exécution de la fonction envelopper entre parenthèses première:

(function() { return $("#username").val() })() 
+0

J'ai essayé cela, mais je reçois une chaîne vide dans le webservice (et non la valeur réelle de la zone de texte) – Krassi

+0

Que voulez-vous dire par "dans les services web"? Ce rappel n'a de sens que s'il est exécuté dans votre navigateur avec une boîte avec l'identifiant "username". Peux-tu élaborer? – Bostone

+0

Eh bien, la fonction (enveloppé comme ceci) renvoie une chaîne vide "", plutôt que la valeur réelle. – Krassi

Questions connexes