Php $form.submit(函数(){……});它不起作用了
我创建了一个注册表表单,并使用ajax验证表单;不起作用。我将解释这个问题。下面显示的是ajax的代码Php $form.submit(函数(){……});它不起作用了,php,html,jquery,Php,Html,Jquery,我创建了一个注册表表单,并使用ajax验证表单;不起作用。我将解释这个问题。下面显示的是ajax的代码 $(document).ready(function() { var $form=$('#myform'); //debugger; $form.submit(function() { $.ajax({ type:'POST', url
$(document).ready(function()
{
var $form=$('#myform');
//debugger;
$form.submit(function()
{
$.ajax({
type:'POST',
url:'registrationvalidation.php',
data:$("#myform").serialize(),
success:function(data)
{
alert(data);
if(data=="ok")
{
return true;
}
else
{
alert(data);
return false;
}
}
});
});
});
并且提交被live功能所取代,它按照要求工作。这是工作代码
$(document).ready(function()
{
//var $form=$('#myform');
//debugger;
//$form.submit(function()
$("#submit").live('click',function()
{
$.ajax({
type:'POST',
url:'registrationvalidation.php',
data:$("#myform").serialize(),
success:function(data)
{
alert(data);
if(data=="ok")
{
return true;
}
else
{
alert(data);
return false;
}
}
});
});
});
但在我的程序中,我想使用submit函数,因为我在提交后将一些数据从html表单发布到另一个页面。当我使用chrome开发者工具执行相同的代码(第一个代码)时,它工作正常。任何人都知道解决方案。。
Html表单
<form id="myform" action="insert.php" method="post" >
<h1>Personal Information</h1>
<fieldset id="personal">
<input id="firstname" name="firstname" type="text" placeholder="FIRST NAME" autofocus><br>
<input id="lastname" name="lastname" type="text" placeholder="LAST NAME"><br>
<input id="gender" name="gender" type="text" placeholder="GENDER" ><br>
<input id="email" name="email" type="email" placeholder="EMAIL"><br>
<input id="date" name="date" type="date" placeholder="JOINING DATE" ><br>
<input id="designation" name="designation" type="text" placeholder="DESIGNATION"><br>
</fieldset>
<h1>Login Info</h1>
<fieldset id="logininfo">
<input id="username" name="username" type="text" placeholder="USER NAME" ><br>
<input id="password1" name="password1" type="password" placeholder="PASSWORD" ><br>
<input id="password2" name="password2" type="password" placeholder="CONFORM PASSWORD" ><br>
</fieldset>
<h1>Permissions</h1>
<fieldset id="permission" align="center">
View :<input id = "VIEW" name="view" type = "checkbox" value = "view" /> <br>
Edit :<input id = "EDIT"name="edit" type = "checkbox" value = "edit" /> <br>
Delete :<input id = "DELETE"name="delete" type = "checkbox" value = "delete" /> <br>
Permission :<input id = "PERMISSION" name="permission"type = "checkbox" value = "perms" /> <br>
Add User :<input id = "ADD" name="add" type = "checkbox" value = "add" /> <br>
</fieldset>
<fieldset id="actions">
<input type="button" id="submit" value="SUBMIT" />
<!--<input type="submit" id="submit" value="SUBMIT" />this is for submit function-->
<div id="idd"></div>
</fieldset>
</form>
个人信息
登录信息
权限
视图:
编辑:
删除:
权限:
添加用户:
提前感谢。您应该取消表单提交,并在AJAX成功时手动提交表单:
var oForm = $('#myform');
oForm.submit(function()
{
$.ajax({
type:'POST',
url:'registrationvalidation.php',
data: oForm.serialize(),
success:function(data)
{
alert(data);
if(data=="ok")
{
oForm[0].submit();
}
else
{
alert(data);
}
}
});
return false;
});
AJAX回调中的“return false”毫无意义,它不会影响表单提交。您应该取消表单提交,并在AJAX成功时手动提交表单:
var oForm = $('#myform');
oForm.submit(function()
{
$.ajax({
type:'POST',
url:'registrationvalidation.php',
data: oForm.serialize(),
success:function(data)
{
alert(data);
if(data=="ok")
{
oForm[0].submit();
}
else
{
alert(data);
}
}
});
return false;
});
AJAX回调中的“return false”毫无意义,它不会影响表单提交。AJAX成功中的
return true | false
的目标是什么?true用于提交表单,flase用于提交表单,这在异步调用中是不可能的。您的返回false
是在提交表单后执行的,它是确定的..但是为什么表单.submit(函数(){..});在ajax成功中,return true | false
的目标是什么?true用于提交表单,flase用于not这在异步调用中是不可能的。您的返回false
是在提交表单后执行的,它是确定的..但是为什么表单.submit(函数(){..});不工作这不会导致提交循环?@chumkiu很好!将代码更改为提交本机表单元素,这样不会触发jQuery事件。这很有效,但我不明白为什么。submit事件也应该与本机触发器一起工作。关于这件事,你有没有找医生的建议?@chumkiu有很好的解释。:)+1谢谢:-)只是一个问题:这是安全的交叉划船吗?(IE?)这不会导致提交循环?@chumkiu很好!将代码更改为提交本机表单元素,这样不会触发jQuery事件。这很有效,但我不明白为什么。submit事件也应该与本机触发器一起工作。关于这件事,你有没有找医生的建议?@chumkiu有很好的解释。:)+1谢谢:-)只是一个问题:这是安全的交叉划船吗?(即?)