ajax情况下阻止submit提交
背景描述:
有一个表单,里面有姓名,昵称,电话等信息,然后提交的时候要进行一些判断,比如是不是没有填写,电话号码是否符合规则等等,判断不通过的话,则阻止提
交。还有一项需求是判断昵称是否含有系统要过滤的词汇,而这些词汇的列表存放在服务器上,所以需要用到ajax来做。
我的做法是在form里加上onsubmit="return checkForm();",如果checkForm()返回false,将阻止提交,如果返回true,表单就提交了。
问题描述:
前面的那些判断都可以阻止,但是ajax的却不行,因为ajax是异步的,如:
function checkForm(
)
{
if
(
document.
getElementById(
'name'
)
.
value =
=
''
)
{
alert(
'名字不能为空'
)
;
return false;
}
requestAjax(
'test.php'
,
'par=val'
,
'get'
,
callback)
;
}
function callback(
)
{
if
(
ajax.
responseText =
=
'N'
)
{
return false;
}
}
检测结果需要等到服务器返回,但是onsubmit不会等到ajax返回就已经提交了。
解决方案:
后来通过网上搜索,找到一种解决方法。就是不用submit按钮,而是换成button,给予button一个click事件,button的
onclick触发checkForm函数,然后如果ajax返回的时候N,就return
false,如果是Y,就执行document.forms["testf"].submit();代码如下:
function checkForm(
)
{
if
(
document.
getElementById(
'name'
)
.
value =
=
''
)
{
alert(
'名字不能为空'
)
;
return false;
}
requestAjax(
'test.php'
,
'par=val'
,
'get'
,
callback)
;
}
function callback(
相关文档:
Atlas是什么?
atlas 2006-12-12 09:48 阅读69 评论0
字号: 大大 中中 小小
Atlas是什么?
ASP.NET”Atlas”是一个新的Web技术开发包,它集成了一套非常大的客户端脚本库使得与功能丰富的、基于服务器开发平台的ASP.NET2.0结合在一起,&rdq ......
最近在负责做网站的后台管理部分,觉得jquery的sortable做动态工具栏很实用,但网上很多都只介绍ajax和sortable一起,没有和database结合着用,唯一看到的就是用cookie,如果有朋友喜欢用cookie的,可以来这里看看。 我个人不喜欢cookie,cookie有时间的限制,而且好多人现在都禁止cookie的使用了。就自己编了个码,用php、j ......
php代码:
<?php
$arr = array(1, '刘天才', 22);\
echo json_encode($arr);die();
?>
js:
<script type="text/javascript">
function returnObj( info )
{
var string = info.responseText;
var array = eval( ......
web2.0横空出世,ajax首当其冲,今天做web的如果再不学点ajax的话,就显的落伍了,而学ajax的用的环境如果是asp.net,那ajax.net你就不得不学了。首先就是环境的配置,如下
vs2005+sql2005+Winxp sp2+ie6.0+Office2003
工具下载
1.ASPAJAXExtSetup.msi
http://download.microsoft.com/download/5/4/6/5462 ......