私は、当社が開発した独自の電子商取引プラットフォームに取り組んでいます。私は厳密にフロントエンド開発に携わっています。
残念ながら、ショッピング カートの多くは、インライン JavaScript イベントを使用してデータをデータベースに投稿しています。近いうちにインライン JavaScript を Jquery に変換する予定ですが、今のところそのままです。
私が抱えている特定の問題の 1 つは、カート内の各項目で繰り返される「カートから項目を削除」アイコンに関するものです。バックエンドの Delphi コードを使用してカートからアイテムを削除するインライン JavaScript イベントがあります。
document.SPI_KitFormName.SPI_KitOrdQtyFieldName.value='DEL';
document.SPI_KitFormName.Action.value='Recalc_Kit';
この「カートからアイテムを削除」アイコンがクリックされたときにポップアップするJqueryダイアログボックスを追加し、ユーザーに確認を求めました。ダイアログボックスに「アイテムの削除」と「キャンセル」ボタンを追加しました。
私が遭遇した問題は、アイコンがクリックされたときに、インライン JavaScript イベントがダイアログ ボックス jquery の前に実行されることでした。わかりました。そこで、e.preventDefault()
インライン JavaScript が最初に実行されないように jQuery コードに追加しました。問題は、ダイアログ ボックスの [アイテムの削除] ボタンをクリックしたときに、再度有効にする方法がわからないことです。
これが私の現在のコードです:
var currentForm;
$(function() {
jQuery('#confirm-itemdelete').dialog({
autoOpen: false,
height: 160,
modal: true,
resizable: false,
buttons: {
'Delete Item': function() {
$(this).dialog("close");
$(".deleteitembutton a").die('click');
currentForm.submit();
},
'Cancel': function(){
$(this).dialog("close");
}
}
});
$('.deleteitembutton a').live('click', function(e) {
currentForm = $(this).closest('form');
e.preventDefault();
$('#confirm-itemdelete').dialog('open');
});
});
ご協力いただきありがとうございます。