フォームとdb呼び出しを使用して、コンテンツを.post()に置き換えました。新しいコンテンツは、phpクエリの別のフォームとデータテーブルです。次に、新しいテーブルの新しいフォームを使用して、いくつかのcssを変更します。ただし、新しいフォームにデータを入力すると、クリックイベントで、コンテンツが元のコンテンツに戻ります。ページコンテンツのサーバー側を変更しないことはわかっていますが、jQueryは現在のDOMで機能すると思いました。
元のコンテンツ:
<div id="bodyContent">
<form id="usualValidate" class="mainForm" method="post" action="">
<label>Barcode:<span>*</span></label>
<input type="text" class="required" name="startBarcode" id="startBarcode"/>
<input type="submit" value="submit" class="blueBtn" id="startBtn" />
</form>
</div>
置き換えられたコンテンツ:
<div id="bodyContent">
<form id="checkinProcess" class="mainForm" method="post" action="">
<label>Barcode:<span>*</span></label>
<input type="text" class="required" name="processBarocdes" id="processBarcodes"/>
<input type="submit" value="submit" class="blueBtn" id="submitBtn" />
</form>
<table id="shippedBarcodesTable">
<thead>...</thead>
<tbody id="shippedBarcodes">
<tr id="B000503513">...</tr>
<tr id="B000496123">...</tr>
</tbody>
</table>
</div>
JS:最初に新しいコンテンツをロードします。2つ目は、ロードされたテーブルの行を強調表示します。ハイライトスクリプトは、ページ全体を更新する従来のページ設定で機能します。ただし、jQueryを使用して動的テーブルをロードし、その後のjQueryを使用してテーブル内の行を強調表示しようとすると、元のソースコンテンツに戻ります。
$(document).ready(function() {
$("#startBtn").on("click", startCheckin);
function startCheckin(sevt) {
sevt.preventDefault();
var startBC = $("#startBarcode").val();
$.post("checkin_process.php",
{startBarcode : startBC},
function(data) {
$("#bodyContent").html(data);
});
}
$("#submitBtn").on("click", highlight);
function highlight(hevt) {
hevt.preventDefault();
var scanbc = $("#processBarcodes").val();
$("#" + scanbc).addClass("curChecked");
$('html, body').animate({scrollTop: $("#" + scanbc).offset().top-150}, 750);
}
});