0

我环顾四周,发现了其他问题,但并没有真正回答我的需要。我正在使用引导带,并有一个模式用于一组忘记密码的挑战问题。我能够让模态出现和消失。但是我的问题是,如果第二次调用该窗口,则提交按钮不起作用。

在隐藏时,我正在清除表单值并删除模态

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

所以这是我遇到问题的场景

用户来到页面并激活模态,取消模态,然后再次激活模态。用户然后填写问题并单击提交按钮。

在这种情况下,提交按钮不会激活其点击事件

这是点击代码。

$('#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.');
    }
});

如果用户调用模态并回答问题并点击提交,如果您调用模态,取消,再次调用它并提交它不起作用。

我错过了什么?

谢谢

杰夫

4

1 回答 1

1

(不能评论没有足够的代表)

我以前遇到过这个问题,请检查以确保弹出窗口没有作为彼此的兄弟姐妹两次添加到 DOM 中。因为您将提交按钮作为 ID,所以如果在 DOM 中找到两次,它将破坏页面。

2个修复:

首先- 无论您在哪里构建或打开弹出窗口,都将其添加$(popup's class/id).hide();为函数的第一行。这将确保在第二次未完全删除后不会再次创建弹出窗口。

第二- 不要为提交按钮分配一个 ID,而是尝试通过一个类来完成,即.forgotPassSubmit它出现在代码中的任何位置。这应该避免由于某种原因在 DOM 中有多个的情况,并且仍然允许您对其进行点击操作

亚历克斯

于 2013-07-26T18:52:26.507 回答