J'ai créé un système de gestion de lieux où vous pouvez créer, supprimer ou modifier des noms de lieux. C'est une table où dans chaque rangée il y a un nom de lieu un bouton d'édition et un bouton de suppression. A la fin de la table, il y a un bouton "créer un nouveau lieu". Maintenant, quand je clique sur le bouton "créer un nouveau lieu", je reçois une nouvelle ligne générée dans laquelle je peux écrire le nouveau nom, annuler l'opération et sauvegarder l'opération. Je veux savoir pour enregistrer une opération qui devrait supprimer le contenu généré et créer une nouvelle ligne avec le nom, modifier et supprimer des cellules. Mon problème est qu'il fonctionne seulement avec une rangée mais si j'ai deux noms en fonctionnement alors le jquery ne sait pas sur quelle rangée j'ai cliqué ok pour l'enregistrer.jquery table lire la valeur du champ de saisie
Exemple:
généré Row1 = Espagne
généré Row2 = Brasil
Cliquez sur OK dans row2, ROW2 enlevé par jquery, le nom de row1 généré en placetable = faux!
Voici le code
<head>
<script src="../jquery.js" type="text/javascript"></script>
$(document).ready(function() {
$(".edit").click(function() {
var id = $(this).attr("id");
alert("edit "+id);
});
$(".delete").click(function() {
var id = $(this).attr("id");
alert("delete "+id);
});
$("#newbutton").click(function() {
$("tr:last").after("<tr><td><input style='width: 80%' /></td><td class=ok>OK</td><td class=cancel>Cancel</td></tr>").ready(function() {
$(".cancel").live("click", function() {
$(this).parent().remove();
});
$(".ok").click(function() {
var name = $(this).val();
$(this).parent().remove();
$("tr .edit:last").after("<tr><td>"+name+"</td><td class=edit>edit</td><td class=delete>delete</td></tr>");
});
});
})
});
</script>
</head>
<table border=1 id=table>
<tr><th>Name</th></tr>
<tr><td>Bombai</td><td id=1 class=edit>edit</td><td id=1 class=delete>delete</td></tr>
<tr><td>London</td><td id=2 class=edit>edit</td><td id=2 class=delete>delete</td></tr>
<tr><td>Rom</td><td id=3 class=edit>edit</td><td id=3 class=delete>delete</td></tr>
</table><label id=newbutton>New Place</label>
Merci beaucoup de m'avoir aidé avec une solution complète, je l'apprécie beaucoup! J'ai créé trois nouvelles lignes avec votre script, mais quand je clique sur OK, elles apparaissent à la fin de la table. N'y a-t-il pas un moyen de les faire apparaître à la fin des lignes modifiables. J'ai essayé de changer $ ("tr: last") en $ ("tr.edit: last") mais quand je clique sur OK, les lignes n'apparaîtront pas :(Avez-vous une solution à ce problème? – elhombre