Javascript bootbox.confirm在ajax加载的div中立即打开和关闭
我正在使用我从中下载的bootbox。 使用ajax将user_update.php加载到users.php的div中。 在user_update.php中,我有一个JavaScript函数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
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;" />