0
我試圖完成以下任務:單擊問題 - 確認警報不會阻止HREF點擊
當用戶點擊包含複選框,如果任一複選框被檢查,一個一個div(「productListMatch」)的外確認警報出現,讓用戶知道他們沒有保存在那裏複選框選擇。
總之,我在檢查一個檢查項是否保存。如果是這樣,通知用戶,讓他們選擇保存或不保存。
這是我做了什麼:
function formCheckboxConfirm() {
$('html').click(function() {
var elem = document.getElementById('frm-list-product').elements;
for (i = 0; i < elem.length; i++) {
if(elem[i].type == "checkbox" && elem[i].checked) {
confirm("You have made changes! Do you want to proceed without saving your changes?");
break;
}
}
});
$(".productListMatch").click(function(e) {
e.stopPropagation(); // I thought this would stop all link clicks, but it's not working as I expected.
});
}
雖然這部作品在一般情況下,它不與聯繫工作。點擊它們後,它們會繼續執行,並且我仍然收到確認提醒。
注意:在div外部的網頁上有許多導航鏈接。 「productListMatch」div本身是jquery選項卡(兩個中的第二個)內的一部分內容,因此必須單擊該選項卡才能看到「productListMatch」div。
我想是這樣的:
- 如果任何一個環節 - 除了複選框(和保存按鈕) - 點擊從執行
- 執行
- 停止鏈接檢查複選框是否被選中
- 如果複選框被選中,請提供確認提示
- 如果用戶點擊「確定」按鈕,網頁將繼續鏈接,最初點擊
- 如果用戶點擊「取消」,網頁無法繼續鏈接,最初點擊
- 如果未選中複選框,沒有確認的警報,並繼續網頁鏈接,最初檢查
- 如果複選框被選中,請提供確認提示
- 停止鏈接檢查複選框是否被選中
- 執行
我嘗試了幾個場景,儘管我可以讓鏈接停止(我使用了preventDefault),但我不確定如何讓它們重新開始。也許我正在對這件事做錯。
我希望得到一些幫助。
謝謝。
斯蒂芬
謝謝JMax。這對一些鏈接起作用。但是,其他鏈接有內聯點擊。而且,儘管嘗試這麼做了幾天,但我找不到一種方法來禁用它們,獲取確認信息,並在確認爲「確定」時重新啓用它們。我最初並沒有意識到這一點,當我發佈(別人寫的代碼)。不過謝謝。 – user282648
您可以將事件綁定到DOM的父元素,而不是使用內聯onclicks並使用['event.stopPropagation()'](http://api.jquery.com/event.stopPropagation/)來避免觸發另一個點擊,如果用戶不確認 – JMax
我做了這樣的事情 - http://stackoverflow.com/questions/7041576/help-with-converting-inline-onclick - 雖然我沒有使用綁定方法。這聽起來像我想要使用的。 – user282648