jquery ajout, suppression, vérification des modifications d'informations personnelles

PHPz
Libérer: 2023-05-18 17:43:39
original
697 Les gens l'ont consulté

jQuery est une bibliothèque Javascript pratique et rapide, souvent utilisée pour gérer les interactions, le traitement des événements et les effets d'animation des documents HTML. Cet article expliquera comment utiliser jQuery pour implémenter la fonction d'ajout, de suppression, de modification et de vérification des informations personnelles.

1. Préparation

Tout d'abord, vous avez besoin d'un tableau HTML contenant des informations personnelles, qui peuvent être écrites manuellement ou générées à l'aide d'un moteur de modèles. Supposons que notre tableau contienne les en-têtes et les données suivants :

<table id="info-table">
    <thead>
        <tr>
            <th>ID</th>
            <th>姓名</th>
            <th>性别</th>
            <th>年龄</th>
            <th>联系方式</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>张三</td>
            <td>男</td>
            <td>25</td>
            <td>138****1234</td>
            <td>
                <button class="edit-btn">编辑</button>
                <button class="delete-btn">删除</button>
            </td>
        </tr>
        <tr>
            <td>2</td>
            <td>李四</td>
            <td>女</td>
            <td>30</td>
            <td>139****5678</td>
            <td>
                <button class="edit-btn">编辑</button>
                <button class="delete-btn">删除</button>
            </td>
        </tr>
        ...
    </tbody>
</table>
Copier après la connexion

Deuxièmement, un formulaire est nécessaire pour ajouter et modifier des informations. Vous pouvez utiliser HTML pour construire un formulaire, par exemple :

<form id="info-form">
    <input type="hidden" id="info-id" value="">
    <div>
        <label for="info-name">姓名:</label>
        <input type="text" id="info-name" name="name" required="required">
    </div>
    <div>
        <label for="info-gender">性别:</label>
        <input type="radio" id="info-gender-male" name="gender" value="male" required="required">
        <label for="info-gender-male">男</label>
        <input type="radio" id="info-gender-female" name="gender" value="female" required="required">
        <label for="info-gender-female">女</label>
    </div>
    <div>
        <label for="info-age">年龄:</label>
        <input type="number" id="info-age" name="age" required="required">
    </div>
    <div>
        <label for="info-phone">联系方式:</label>
        <input type="tel" id="info-phone" name="phone" required="required">
    </div>
    <div>
        <button type="submit" id="submit-btn">提交</button>
        <button type="button" id="cancel-btn">取消</button>
    </div>
</form>
Copier après la connexion

Parmi eux, le champ caché avec l'identifiant "info-id" est utilisé pour enregistrer l'ID de l'information en cours de modification. Si la valeur est vide, cela signifie. que l'opération en cours est d'ajouter, et si elle n'est pas vide, cela signifie que l'opération en cours est d'éditer.

2. Ajouter des informations

L'opération d'ajout d'informations est relativement simple. Il vous suffit d'écouter l'événement de soumission du formulaire, d'obtenir les données du formulaire et de les insérer dans le tableau. Les étapes spécifiques sont les suivantes :

  1. Écouter l'événement de soumission :
$('#info-form').on('submit', function(e) {
    e.preventDefault();
    // ...
});
Copier après la connexion
  1. Récupérer les données du formulaire :
var formData = {
    name: $('#info-name').val(),
    gender: $('input[name="gender"]:checked').val(),
    age: $('#info-age').val(),
    phone: $('#info-phone').val()
};
Copier après la connexion
  1. Insérer dans le tableau :
var newRow = $('<tr>')
    .append($('<td>').text(newId))
    .append($('<td>').text(formData.name))
    .append($('<td>').text(formData.gender === 'male' ? '男' : '女'))
    .append($('<td>').text(formData.age))
    .append($('<td>').text(formData.phone))
    .append($('<td>')
        .append($('<button>').addClass('edit-btn').text('编辑'))
        .append($('<button>').addClass('delete-btn').text('删除'))
    );
$('#info-table tbody').append(newRow);
Copier après la connexion

Parmi eux, newId est l'ID du nouveau informations ajoutées, qui doivent être basées sur l'ID maximum de la table actuelle Ajouter 1 à générer.

3. Modifier les informations

L'opération de modification des informations est légèrement plus compliquée que l'opération d'ajout. Vous devez d'abord localiser les informations qui doivent être modifiées dans le formulaire, puis remplir ses données dans le formulaire et écouter. à l'événement de soumission du formulaire et mettre à jour une fois la mise à jour terminée. Les données d'origine dans le tableau. Les étapes spécifiques sont les suivantes :

  1. Écoutez l'événement click du bouton d'édition :
$('#info-table').on('click', '.edit-btn', function() {
    var row = $(this).closest('tr');
    var id = row.find('td:first-child').text();
    var name = row.find('td:nth-child(2)').text();
    var gender = row.find('td:nth-child(3)').text() === '男' ? 'male' : 'female';
    var age = row.find('td:nth-child(4)').text();
    var phone = row.find('td:nth-child(5)').text();
    $('#info-id').val(id);
    $('#info-name').val(name);
    $('input[name="gender"][value="' + gender + '"]').prop('checked', true);
    $('#info-age').val(age);
    $('#info-phone').val(phone);
    $('#submit-btn').text('更新');
});
Copier après la connexion
  1. Écoutez l'événement submit du formulaire :
$('#info-form').on('submit', function(e) {
    e.preventDefault();
    var id = $('#info-id').val();
    var formData = {
        name: $('#info-name').val(),
        gender: $('input[name="gender"]:checked').val(),
        age: $('#info-age').val(),
        phone: $('#info-phone').val()
    };
    var row = $('#info-table').find('td:first-child').filter(function() {
        return $(this).text() === id;
    }).closest('tr');
    row.find('td:nth-child(2)').text(formData.name);
    row.find('td:nth-child(3)').text(formData.gender === 'male' ? '男' : '女');
    row.find('td:nth-child(4)').text(formData.age);
    row.find('td:nth-child(5)').text(formData.phone);
    $('#info-id').val('');
    $('#info-name').val('');
    $('input[name="gender"]').prop('checked', false);
    $('#info-age').val('');
    $('#info-phone').val('');
    $('#submit-btn').text('添加');
});
Copier après la connexion

Parmi eux, utilisez les méthodes find, filter et close pour localisez la ligne qui doit être modifiée et utilisez la méthode de recherche à nouveau pour obtenir les données de chaque colonne de la ligne.

4. Supprimer les informations

La suppression des informations est relativement simple. Il vous suffit de confirmer si vous souhaitez les supprimer en cliquant sur le bouton Supprimer et de supprimer la ligne correspondante du tableau. Les étapes spécifiques sont les suivantes :

  1. Écoutez l'événement click du bouton de suppression :
$('#info-table').on('click', '.delete-btn', function() {
    var row = $(this).closest('tr');
    if (confirm('确定要删除该信息吗?')) {
        row.remove();
    }
});
Copier après la connexion

Parmi eux, utilisez la méthode la plus proche pour obtenir la ligne actuelle et utilisez la méthode Remove pour la supprimer de l'arborescence DOM.

Jusqu'à présent, nous avons terminé la fonction d'ajout, de suppression, de modification et de vérification des informations personnelles. L'exemple de code complet est le suivant :

$(function() {
    $('#info-table').on('click', '.edit-btn', function() {
        var row = $(this).closest('tr');
        var id = row.find('td:first-child').text();
        var name = row.find('td:nth-child(2)').text();
        var gender = row.find('td:nth-child(3)').text() === '男' ? 'male' : 'female';
        var age = row.find('td:nth-child(4)').text();
        var phone = row.find('td:nth-child(5)').text();
        $('#info-id').val(id);
        $('#info-name').val(name);
        $('input[name="gender"][value="' + gender + '"]').prop('checked', true);
        $('#info-age').val(age);
        $('#info-phone').val(phone);
        $('#submit-btn').text('更新');
    });
    
    $('#info-form').on('submit', function(e) {
        e.preventDefault();
        var id = $('#info-id').val();
        var formData = {
            name: $('#info-name').val(),
            gender: $('input[name="gender"]:checked').val(),
            age: $('#info-age').val(),
            phone: $('#info-phone').val()
        };
        if (id === '') {
            var newId = parseInt($('#info-table').find('td:first-child')
                .map(function() { return $(this).text(); }).get()
                .reduce(function(prev, curr) { return parseInt(prev) > parseInt(curr) ? prev : curr; })) + 1;
            var newRow = $('<tr>')
                .append($('<td>').text(newId))
                .append($('<td>').text(formData.name))
                .append($('<td>').text(formData.gender === 'male' ? '男' : '女'))
                .append($('<td>').text(formData.age))
                .append($('<td>').text(formData.phone))
                .append($('<td>')
                    .append($('<button>').addClass('edit-btn').text('编辑'))
                    .append($('<button>').addClass('delete-btn').text('删除'))
                );
            $('#info-table tbody').append(newRow);
        } else {
            var row = $('#info-table').find('td:first-child').filter(function() {
                return $(this).text() === id;
            }).closest('tr');
            row.find('td:nth-child(2)').text(formData.name);
            row.find('td:nth-child(3)').text(formData.gender === 'male' ? '男' : '女');
            row.find('td:nth-child(4)').text(formData.age);
            row.find('td:nth-child(5)').text(formData.phone);
            $('#info-id').val('');
            $('#info-name').val('');
            $('input[name="gender"]').prop('checked', false);
            $('#info-age').val('');
            $('#info-phone').val('');
            $('#submit-btn').text('添加');
        }
    });
    
    $('#info-table').on('click', '.delete-btn', function() {
        var row = $(this).closest('tr');
        if (confirm('确定要删除该信息吗?')) {
            row.remove();
        }
    });
    
    $('#cancel-btn').on('click', function() {
        $('#info-id').val('');
        $('#info-name').val('');
        $('input[name="gender"]').prop('checked', false);
        $('#info-age').val('');
        $('#info-phone').val('');
        $('#submit-btn').text('添加');
    });
});
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal