Jquery: Ajout d'un Formulaire de Saisie de la Valeur de (.val)
Je suis en train d'essayer d'écrire une chaîne de plusieurs valeurs selon si les cases sont cochées. c'est à dire
$('#submit').click(function() {
if ($('#box1').attr('checked')) {
$('#MyInput').val('box1 ');
alert('1');
}
if ($('#box2').attr('checked')) {
$('#MyInput').val('box2 ');
alert('2');
}
});
Le retour, je suis à la recherche d', dans ce cas, serait '1 2', mais seule la deuxième valeur est écrite dans le champ de saisie.
Les alertes de me dire que ces deux événements de l'argument sont à tirer. Est-il une autre méthode pour l'ajout de valeurs?
- double possible de Est-il possible de le faire ".value +=" en JQuery?
Vous devez vous connecter pour publier un commentaire.
La
.val()
n'ajoute pas.. il définit la valeur de ce que vous transmettez, et écrase la valeur précédente.Et si vous avez plusieurs cases à cocher que vous souhaitez tout de leurs valeurs ajoutées à la myInput élément si elles sont vérifiées, vous pouvez ajouter une classe à eux tous, et il suffit de faire
démo http://jsfiddle.net/SQcGq/
Vous êtes en remplaçant la valeur de
MyInput
à chaque fois..val
ne pas ajouter à la valeur du champ de saisie, il remplace.Donner les cases d'une classe comme
boxes
, et l'utilisation de lamap()
[docs] méthode pour obtenir une collection de valeurs, laget()
[docs] méthode pour convertir un Tableau, et.join()
à se joindre à eux dans une chaîne.Puis définissez la chaîne résultante une fois que la valeur à l'aide de la
val()
[docs] méthode.EDIT: L'exigence était d'utiliser une chaîne égale à l'ID du résultat. Fixe. Grâce à @Bryan pour le heads up.
return this.id
à la place. Coupant les cheveux en quatre, si.Je suppose que c'est une faute de frappe? Dans la première
if
vous cochez la case "vérifié" valeur, dans la deuxièmeif
vous recherchez le "vérifié" attributDans le cas où vous utilisez jQuery 1.6+ vous devez utiliser
$('#box1').prop("checked")
Vérifier/modifier cette démo: http://jsfiddle.net/roberkules/45WgD/
});
Faire
$('#MyInput').val('box1 ');
remplace la valeur de la zone de texte, qui est pourquoi vous êtes seul à voir la deuxième valeur, cela devrait fonctionner: