如何停止AJAX函数提交
How to stop AJAX function submit?
我正在为我的网站开发AJAX函数。我面临三个问题。
- 我的页面有2条JavaScript弹出错误消息,而不是1条带有相同消息的消息
- 在PHP中组合两个isset帖子。这对我不起作用
- 如果是
message == success
,它怎么能在表单中提交操作,否则它将停留在同一页中
我的HTML:
<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<body>
<form method="POST" id="contactForm" action="www.alphaexile.com/method?=>
<input type="text" name="email" id="email"></input>
<input type="submit" name="submit1"></input>
</form>
<script type="text/javascript">
$('#contactForm').submit(function(e){
e.preventDefault();
var email = $('#email').val();
$.ajax({
type: 'POST',
dataType: 'JSON',
url: 'check.php',
data: {email: email},
success: function(data){
if(data.status == 'success') {
alert('The e-mail address entered is correct.');
} else {
alert('The e-mail address entered is Incorrect.');
}
}
});
});
</script>
</body>
</head>
我的PHP:
<?php
if (!empty($_POST['email'] || ($_POST['email']="Enter Your Email Here")) {
$status = 'success';
} else {
$status = 'failed';
}
echo json_encode(array('status' => $status));
?>
对于3)。
首先,您需要将提交按钮的名称从submit
更改为其他名称,然后再更改为
$('#contactForm').submit(function (e) {
e.preventDefault();
var email = $('#email').val();
var frm = this;
$.ajax({
type: 'POST',
dataType: 'JSON',
url: 'check.php',
data: {
email: email
},
success: function (data) {
if (data.status == 'success') {
alert('The e-mail address entered is correct.');
frm.submit();
} else {
alert('The e-mail address entered is Incorrect.');
}
}
});
});
对于2)-不是PHP的人(所以我不知道你是否可以使用$_POST两次,但如果你不想使用它两次)。但看起来empty()
调用没有正确关闭
<?php
$email = $_POST['email'];
if (empty($email) || $email="Enter Your Email Here") {
$status = 'failed';
} else {
$status = 'success';
}
echo json_encode(array('status' => $status));
?>
这应该可以解决您的所有问题。
您定义了一个全局变量,并在ajax完成时对其进行设置。首先将其设置为false,这意味着您仍然需要进行一些ajax调用。但是一旦ajax调用成功,您就重新提交表单。
这一次是因为您将checker设置为true。这意味着ajax调用已经完成,它将不再执行该调用,而是只提交表单。
var formSubmit = false; // define a global variable
$('#contactForm').submit(function(e){
if(!formSubmit){
e.preventDefault();
var emailParam = $('#email').val(); // change you variable name, it's confusing to read.
$.ajax({
type: 'POST',
dataType: 'JSON',
url: 'check.php',
data: {email: emailParam},
success: function(data){
if(data.status == 'success') {
alert('The e-mail address entered is correct.');.
formSubmit = true; // set the global variable to true.
$('#contactForm').trigger('submit') //resubmit the form
} else {
alert('The e-mail address entered is Incorrect.');
}
}
});
} else {
formSubmit = false;
}
});
对于PHP部分,你可以这样做
if (isset($_POST['email']) && $_POST['email'] != 'Enter Your Email Here') {
$status = 'success';
} else {
$status = 'failed';
}
echo json_encode(array('status' => $status));
die();
检查$_POST
中是否设置了email
参数,并检查该值。
简单的方法是注册。点击提交按钮执行ajax代码,然后在提交操作中提交表单。
$('#contactForm [type="submit"]').click(function(e){
e.preventDefault();
var email = $('#email').val();
$.ajax({
type: 'POST',
dataType: 'JSON',
url: 'check.php',
data: {email: email},
success: function(data){
if(data.status == 'success') {
alert('The e-mail address entered is correct.');
$('#contactForm').submit()
} else {
alert('The e-mail address entered is Incorrect.');
}
}
});
})
相关文章:
- 表单中的数据不会传递给提交函数-使用Angular
- javascript表单提交函数没有't提交
- Jquery提交函数未验证
- JQuery:重用提交函数
- j查询提交函数未触发
- 提交函数无法正确加载
- 当我调用其他提交函数时,$anchorScroll正在进行第二次单击
- 非常基本的PHP和Javascript - 提交/函数不起作用
- 将变量传递给 JQuery 提交函数
- 表单只检查提交函数的第一个值
- 如何将ajax提交函数添加到表单中
- 这个jQuery提交函数出了什么问题
- Javascript表单验证提交函数
- 如何添加提交函数到js的Onclick函数
- 在表单提交函数中调用jQuery AJAX
- 按条件提交函数中的表单
- JQuery提交函数不启动
- 如何在代码编写器中调用提交函数
- 为动态填充的jquery .submit添加额外的提交函数
- 从父窗口表单向父窗口和iframe提交函数