ホームページ >ウェブフロントエンド >フロントエンドQ&A >jquery個人情報追加・削除・変更確認
jQuery は便利で高速な Javascript ライブラリであり、HTML ドキュメントのインタラクション、イベント処理、アニメーション効果を処理するためによく使用されます。この記事ではjQueryを使って個人情報の追加・削除・変更・確認機能を実装する方法を紹介します。
1. 準備
まず、個人情報を含む HTML テーブルが必要です。これは手動で作成することも、テンプレート エンジンを使用して生成することもできます。テーブルに次の列ヘッダーとデータが含まれているとします。
<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>
次に、情報を追加および編集するためにフォームが必要です。 HTML を使用してフォームを構築できます (例:
<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>
) このうち、「info-id」という ID を持つ隠しフィールドは、編集中の情報の ID を記録するために使用されます。値が空の場合は、 、それは現在の操作が追加であることを意味し、空でない場合は、これは現在編集操作であることを意味します。
2. 情報の追加
情報の追加操作は比較的簡単で、フォームの送信イベントをリッスンし、フォームのデータを取得してテーブルに挿入するだけです。具体的な手順は次のとおりです。
$('#info-form').on('submit', function(e) { e.preventDefault(); // ... });
var formData = { name: $('#info-name').val(), gender: $('input[name="gender"]:checked').val(), age: $('#info-age').val(), phone: $('#info-phone').val() };
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);
このうち、newId は新しく追加する情報の ID で、現在のテーブルの最大 ID に 1 を加えたものを基に生成する必要があります。
3. 情報の編集
情報の編集操作は、追加操作よりも少し複雑で、まずフォーム内で編集する情報を見つけて、そのデータを入力する必要があります。更新が完了すると、送信イベントによってテーブル内の元のデータが更新されます。具体的な手順は次のとおりです。
$('#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() }; 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('添加'); });
その中で、find、filter、およびnearestメソッドを使用して編集する必要がある行を見つけ、再度findメソッドを使用して行内の各列のデータを取得します。
4. 情報の削除
情報の削除は比較的簡単で、削除ボタンをクリックする際に削除するかどうかを確認し、テーブルから該当する行を削除するだけです。具体的な手順は次のとおりです。
$('#info-table').on('click', '.delete-btn', function() { var row = $(this).closest('tr'); if (confirm('确定要删除该信息吗?')) { row.remove(); } });
その中で、最も近いメソッドを使用して現在の行を取得し、 Remove メソッドを使用して DOM ツリーから移動します。
これまでに、個人情報の追加、削除、変更、確認の機能は完了しました。完全なコード例は次のとおりです:
$(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('添加'); }); });
以上がjquery個人情報追加・削除・変更確認の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。