簡體   English   中英

幫助javascript確認對話框

[英]help with javascript confirmation dialog

所以這是我的情況:我有一個使用PHP驗證的表單。 我要這樣做,以便如果表單無法通過驗證,則用戶將被迫單擊確認對話框,然后再導航至另一頁面(表單相當大,他們不希望在保存表單之前無意離開它)。 我正在這樣的事情:

請參閱下面的更新功能

基本上在函數中使用php來設置正文以顯示確認,或者根據我的表單的錯誤狀態不執行任何操作。 沒有提交表單時什么也沒有發生,我單擊一個鏈接,很好。 當表單顯示錯誤並單擊鏈接時,將顯示確認對話框,但取消對話框將使其重新出現。 如果我第二次取消它,即使不應該執行該頁面請求。 我對javascript不太熟悉,所以我不確定發生了什么。 我應該有更好的方法嗎?

編輯: 我想通了 ,這是事情的結合。 首先,我確實犯了一個愚蠢的錯誤:我在標簽和列表中每個鏈接的標簽上都調用了onlick,因此為什么該框會彈出兩次。

第二部分是,即使我的函數已經返回布爾值,onclick仍需要顯式的返回聲明。 我在做:

<a onclick="forceConfirm();" href="somepage.html">Blah</a>

應該是什么時候:

<a onclick="return forceConfirm();" href="somepage.html">Blah</a>

然后只需編輯PHP,以使forceConfirm始終在未提交表單時返回true,從而繞過確認:

            function forceConfirm(){
            <?php
                if($form->errorStatus){
                    echo 'if(confirm("Are you sure you want to navigate away from this page? All unsaved changes will be lost.")){'."\n".
                        'return true;'."\n".'}'."\n".
                        'else{ return false;}';
                }
                else{ echo 'return true;';}
            ?>
        }

現在,我只需要弄清楚如何使用jQuery將其應用於所有鏈接,而不必到處放置onclick事件。

您可以像這樣使用confirm()

if(confirm("Are you sure you want to proceed?")){
    document.location = 'confirmed redirect url...';
}
else{
    document.location = 'cancel redirect url...';
}

然后,將其包裝在與示例相同的PHP塊中,如果需要,將其顯示,如果沒有,則將其隱藏。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM