2013-07-26 39 views
0

我檢查了一下,發現了其他問題,但沒有真正回答我需要的東西。我正在使用一個引導帶,並有一套忘記密碼挑戰問題的模式。我能夠讓模態出現並消失。然而,我的問題是如果第二次調用窗口提交按鈕不起作用。如何銷燬啓動模式,但稍後再使用

上隱藏我清除表單值和

$('#forgotPassModal').on('hidden', function() { 
    $("#forgotPassForm input").each(function() { 
     $(this).val(null); 
    }); 
    $('#forgotPassModal').remove(); 
}); 

所以在這裏卸下模式是我有

用戶問題的方案涉及到頁面並激活模式,將取消模態,然後再次激活模態。用戶然後填寫問題並點擊提交按鈕。

在這種情況下提交按鈕不激活其click事件

這裏

是點擊代碼。

$('#forgotPassSubmit').click(function() { 
     var questAnswered = true; 
    for (var i = 0; i < $forgotPassQuest.questionId.length; i++){ 
      var questionId = $forgotPassQuest.questionId[i]['id']; 
     if ($('#forgotPass_' + questionId).val() == '' || $('#forgotPass_' + questionId).val() == null){ 
      questAnswered = false; 
     } else {} 
    } 
    if (questAnswered == true) { 
     submitAnswers(); 
    } else { 
     alert('please complete your security questions.'); 
    } 
}); 

如果用戶調用的模式和答案的問題和命中提交它的工作原理 如果調用模式,取消,稱之爲第二次提交它不工作。

我錯過了什麼?

感謝

傑夫

+0

在文件中被定義你的點擊處理程序在哪裏?它是在模式還是在主頁面?您可能需要使用事件委託才能動態添加/刪除提交按鈕 –

+0

我很感興趣,這是什麼HTML?您是否使用本機「表單內的提交按鈕」模式?如果是這樣,你可以重構你的事件提交而不是按鈕點擊。 –

回答

1

(廣東話評論沒有足夠的代表)

我已經收到此問題,檢查以確保彈出的心不是添加到DOM兩倍一個兄弟姐妹另一個。因爲您有提交按鈕作爲ID,所以如果它在DOM中找到兩次,它將會中斷頁面​​。

2修復:

首先 - 只要你有彈出正在興建,或打開,添加$(popup's class/id).hide();作爲函數的第一行。這將確保在沒有完全刪除第二次後彈出窗口不會再次創建。

- 而不是給提交按鈕分配一個ID,嘗試通過一類即.forgotPassSubmit無論它出現在代碼這樣做。這應該規避其中有在DOM無論出於何種原因多的情況下,仍然允許你勾進去就可以點擊動作

亞歷

+1

謝謝,將按鈕更改爲一個類。 –