Je souhaite effectuer une pré-validation serveur d'un formulaire dans un fichier Backbone.js modèle. Pour ce faire, je dois transformer les données saisies par l'utilisateur dans un formulaire en données utilisables. J'ai trouvé trois méthodes pour y parvenir :
var input = $("#inputId").val();
var input = $("form.login").serialize();
var input = $("form.login").serializeArray();
Malheureusement, aucun d'entre eux ne fournit un bon objet JSON réutilisable et développable dont j'ai besoin. J'ai déjà regardé plusieurs questions sur Stack Overflow, mais je n'ai trouvé que quelques bibliothèques supplémentaires.
N'est pas Underscore.js La version actuelle de jQuery ou Backbone.js fournit-elle une méthode d'aide ?
Je ne peux pas imaginer qu'il n'y ait pas de demande pour une telle fonction.
HTML
<form class="login">
<label for="_user_name">username:</label>
<input type="text" id="_user_name" name="user[name]" value="dev.pus" />
<label for="_user_pass">password:</label>
<input type="password" id="_user_pass" name="user[pass]" value="1234" />
<button type="submit">login</button>
</form>
JavaScript
var formData = $("form.login").serializeObject();
console.log(formData);
Sorties
{
"name": "dev.pus",
"pass": "1234"
}
Modèle Backbone.js
var user = new User(formData);
user.save();
1 votes
JQuery dispose d'un plugin pour jSON : code.google.com/p/jquery-json il n'inclut pas de méthode d'aide.
5 votes
Qu'est-ce qui ne va pas avec
.serializeArray()
?2 votes
J'en ai besoin pour les formulaires, je m'interroge sur le fait que trois frameworks ne proposent pas de mappeur de formulaire...
3 votes
À propos de la marque en double
This question already has an answer here:
: JSON n'est pas un objet JavaScript, c'est un objet sérialisé. !0 votes
Notation d'objets JavaScript - JSON
0 votes
Avez-vous vérifié ceci : stackoverflow.com/questions/1184624/
11 votes
@xdazz peut-être veulent-ils { "name" : "value" } au lieu de { "name" : "input_name", "value" : "input_value" }
0 votes
J'ai trouvé cela utile benalman.com/code/projets/jquery-bbq/examples/deparam
1 votes
Const contactFormData = contactForm.serializeArray() .reduce(function (accumObj, { name, value }) { return { ...accumObj, [name] : value} }, {}) ;
0 votes
Je me demande pourquoi les gens ici continuent à dicter ce que veut l'OP. J'interprète cela comme des crises de colère parce qu'on ne connaît pas la bonne réponse. Quoi qu'il en soit...