Javascript bootbox.confirm在ajax加载的div中立即打开和关闭

Javascript bootbox.confirm在ajax加载的div中立即打开和关闭,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在使用我从中下载的bootbox。 使用ajax将user_update.php加载到users.php的div中。 在user_update.php中,我有一个JavaScript函数validateForm(),在同一文档的下面,我有一个这样调用该函数的表单: <form name= "updateForm" onsubmit="return validateForm()" role="form-horizontal" m

我正在使用我从中下载的bootbox。 使用ajax将user_update.php加载到users.php的div中。 在user_update.php中,我有一个JavaScript函数
validateForm()
,在同一文档的下面,我有一个这样调用该函数的表单:

<form name= "updateForm" onsubmit="return validateForm()" role="form-horizontal" method="post" action="index.php">
当我在一个没有用ajax加载到div中的div中测试相同的函数时,然后
bootbox.confirm
按预期工作

已编辑
这是ajax调用:

$(document).on("click", ".gebruiker", function (e) {
    e.preventDefault();
    //var url = "user_update.php";
    //$("#details").load(url)
    var idnr = $(this).attr('idnr');

    $.ajax({
        type: "get",
        url: "view/user_update.php",
        data: {
            variable1: idnr
        },
        success: function (data) {
            //do stuff after the AJAX calls successfully completes
            $('#details').html(data);

        }
    });
});
这是它加载到的div:

<div id="details" class="col-md-6">         
</div>

于16:43添加
验证请求的格式代码:

<script>
    function validateForm()
    {
        var fullname = $('#fullname').val();
        var username = $('#username').val();
        var role = document.getElementById("role");
        var roleid = role.options[role.selectedIndex].value;

        var password1 = $('#password1').val();
        var password2 = $('#password2').val();
        var prevroleid = $('#prevroleid').val();
      
      
        if (roleid != prevroleid) {
bootbox.confirm("Are you sure?", function (result) {
    if (result) {
        console.log("User confirmed dialog");
    } else {
        console.log("User declined dialog");
    }
});
}    

        
        if (!fullname)
        {
        bootbox.alert("Het veld 'Naam' mag niet leeg zijn")
        return false;
      }
      if (!username)
        {
        bootbox.alert("Het veld 'Gebruikersnaam' mag niet leeg zijn")
        return false;
      }
      
      if(password1 != password2)
      {
        bootbox.alert("De waardes in de wachtwoord velden komen niet overeen")
        return false;
      }
      
     
    }       
</script>

函数validateForm()
{
var fullname=$('#fullname').val();
var username=$('#username').val();
var role=document.getElementById(“角色”);
var roleid=role.options[role.selectedIndex].value;
var password1=$('#password1').val();
var password2=$('#password2').val();
var prevroleid=$('#prevroleid').val();
if(roleid!=prevroleid){
bootbox.confirm(“确定吗?”),函数(结果){
如果(结果){
console.log(“用户确认对话框”);
}否则{
log(“用户拒绝对话框”);
}
});
}    
如果(!全名)
{
bootbox.alert(“Het veld'Naam'mag niet leeg zijn”)
返回false;
}
如果(!用户名)
{
bootbox.alert(“Het veld'Gebruikersnaam'mag niet leeg zijn”)
返回false;
}
如果(密码1!=密码2)
{
bootbox.alert(“德瓦赫特伍德·维尔登·科门·尼特·奥弗伦的德瓦德斯”)
返回false;
}
}       

您应该防止表单未经验证时出现默认行为

所以validateForm应该是这样的:

function validateForm(e)
{
 var valid = false; // do some validation
 if(!valid){
  e.preventDefault();
 }
}

否则,表单将被提交,页面将刷新,从而关闭确认对话框

而不是在表单标记中使用onsubmit=“return validateForm()”属性。将其作为onclick=“return validateForm();return false;”放在表单的提交按钮上


从validateForm()函数返回true/false。如果返回true,则将提交表格;如果返回false,则不会提交表格


试试看。它应该可以工作。

您的帖子中缺少一些代码,即您正在谈论的div,如果您能看到ajax调用是如何完成的,那就太好了……添加了ajax调用和div@webeno您可以发布
validateForm()
方法代码吗?我高度怀疑这个方法不能正常工作。我试过了,但没什么不同,我还是在一瞬间看到了这个盒子,它消失了。为什么我不在ajax的时候它还能工作。。
function validateForm(e)
{
 var valid = false; // do some validation
 if(!valid){
  e.preventDefault();
 }
}
<input type="submit" onclick="return validateForm();return false;" />