免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4067 | 回复: 11
打印 上一主题 下一主题

xajax如何让我的表单不提交! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-29 04:27 |只看该作者 |倒序浏览
页面部分代码

  1. <script language=javascript>
  2.     function abc() {
  3.               xajax_membername(xajax.getFormValues("scribbleForm"));
  4.                   
  5.     }
  6. </script>
  7. <form id="scribbleForm" method="post" action="?" onSubmit="return abc();">
  8. <table width="653" border="0" cellspacing="0" cellpadding="0">
  9.               <tr>
  10.                 <td width="21" rowspan="13">&nbsp;</td>
  11.                 <td width="71" height="25" class="green-text">用户昵称:</td>
  12.                 <td width="180"><input name="username" type="text" id="username"></td>
  13.                 <td width="381">
  14.                   <input type="button" name="detect" id="detect" value="检测用户名">
  15.                 <span id="regloginnameinfo" class=""></span></td>
  16.               </tr>
  17. </form>
复制代码

程序代码

  1. <?php
  2. define("XAJAX_ROOT" , $cfg['root'] . "/include/xajax/");
  3. define("XAJAX_URL_ROOT" , "/include/xajax/");
  4. define("DEFAULT_CHARSET" , 'GB2312');
  5. require_once        XAJAX_ROOT . 'xajax.inc.php';
  6. $xajax = new xajax();
  7. $xajax->setCharEncoding(DEFAULT_CHARSET);
  8. $xajax->registerFunction("membername");
  9. function membername($member_form)
  10. {
  11.         global $smarty,$cfg;
  12.         // 实例化xajaxResponse 对象
  13.         $objResponse = new xajaxResponse(DEFAULT_CHARSET);
  14.         if (strlen($member_form['username'])<$cfg['min_name_lenght']) {
  15.                 $objResponse->addAssign('regloginnameinfo','innerHTML','用户名长度不能少于 '.$cfg['min_name_lenght']. '字节');
  16.                 $objResponse->addAssign('regloginnameinfo','className','box_error');
  17.         } else {
  18.                 $objResponse->addAssign('regloginnameinfo','innerHTML','');

  19.         }
  20.         return $objResponse->getXML();

  21. }
  22. $smarty->assign('xajax_javascript', $xajax->getJavascript(XAJAX_URL_ROOT));
  23. $xajax->processRequests();
  24. ?>
复制代码

用户名称可以通过xajax验证,但是无论是否成功,表单都提交了,怎么样才能让表单不提交?望指点迷津,衷心谢谢!

论坛徽章:
0
2 [报告]
发表于 2006-04-29 12:38 |只看该作者
确定你的xajax版本是否有调试功能。

如果没有,那么去下载最新版本,新版本0.2.4


从你问题来看,这问题和xajax无关。

论坛徽章:
0
3 [报告]
发表于 2006-04-29 15:53 |只看该作者
原帖由 52linux 于 2006-4-29 09:13 发表
<script language=javascript>
    function abc() {
              xajax_membername(xajax.getFormValues("scribbleForm"));
return false;
                  
    }
</script>



我当然知道return false;可以让表单不提交,关键是我如何用程序实现如果表单验证不通过的话,表单不会提交!

xajax 可不可以让我的abc(); 返回return false;

论坛徽章:
0
4 [报告]
发表于 2006-04-29 16:03 |只看该作者
原帖由 james.liu 于 2006-4-29 12:38 发表
确定你的xajax版本是否有调试功能。

如果没有,那么去下载最新版本,新版本0.2.4


从你问题来看,这问题和xajax无关。



  1. <SCRIPT LANGUAGE="JavaScript">
  2. function abc()
  3. {        
  4.         if(/^[\w\.]{3,20}$/.test(scribbleForm.username.value)==false){
  5.                 alert("您的用户名长度应该在3-20个字符之间,并且由数字、字母组成!");
  6.                 scribbleForm.username.focus();
  7.                 return false;
  8.                 }
  9. }
  10. </script>
  11. <form id="scribbleForm" method="post" action="" onSubmit="return abc();">
  12. <table width="653" border="0" cellspacing="0" cellpadding="0">
  13.               <tr>
  14.                 <td width="21" rowspan="13">&nbsp;</td>
  15.                 <td width="71" height="25" class="green-text">用户昵称:</td>
  16.                 <td width="180"><input name="username" type="text" id="username"></td>
  17.                 <td width="381">
  18.                   <p>
  19.                     <input type="button" name="detect" id="detect" value="检测用户名">
  20.                   </p>
  21.                 <p>
  22.                   <input type="submit" name="Submit" value="提交">               
  23.                   <span id="regloginnameinfo" class=""></span></p></td>
  24.               </tr>
  25. </form>
复制代码


以前验证的时候用上面的代码就可以实现了,关键地方就是如果名称不添的话,表单就会返回false,但是现在用xajax,我不知道如何表单返回false.
有什么好的办法!谢谢!

论坛徽章:
0
5 [报告]
发表于 2006-04-29 16:46 |只看该作者
if(confirm('你确定执行该操作吗?')){xajax.call(xajax_function,parameter)};return false;

try it.


you can replace your function with "xajax.call(xajax_function,parameter)"

论坛徽章:
0
6 [报告]
发表于 2006-04-29 17:20 |只看该作者
原帖由 james.liu 于 2006-4-29 16:46 发表
if(confirm('你确定执行该操作吗?')){xajax.call(xajax_function,parameter)};return false;

try it.


you can replace your function with "xajax.call(xajax_function,parameter)"


原谅新手的无知吧,能就这个例子说一下怎么加程序代码么,我把if(confirm('你确定执行该操作吗?')){xajax.call(xajax_function,parameter)};return false;加到abc();里提交表单提示你确定执行该操作吗?然后我点确定在表单用户名称为空的状态下还是提交了表单!

论坛徽章:
0
7 [报告]
发表于 2006-04-29 17:31 |只看该作者

你是说这吗

<input type="button" onclick="if(sign_up()){xajax_send_msg(xajax.getFormValues('msg_form', true)); return false;}else{return false;}" value="提交" id="sendid">

sing_up() 就是一般的JS function
另<form name="msg_form" method="post" action="" enctype="multipart/form-data">
地址为空,不要return function() 了。。

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
8 [报告]
发表于 2006-04-29 23:21 |只看该作者
你得表单不要提交按钮。

然后就用ajax传送

论坛徽章:
0
9 [报告]
发表于 2006-04-29 23:37 |只看该作者
原帖由 HonestQiao 于 2006-4-29 23:21 发表
你得表单不要提交按钮。

然后就用ajax传送


怎样传送,能举个例子么,我的水平理解不了!

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
10 [报告]
发表于 2006-04-30 00:11 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP