表单总是自动提交。

#1 枪炮玫瑰

添加用户


有这么一个链接,点击表单就自动提交了。连表单都没看到就提交了。
代码如下:controller
        function add(){
                //判断用户是否已存在数据库中
                $conditions = array('username'=>$this->spArgs('username'));
                $gb = spClass('users');
                $results = $gb->find($conditions);
                if($results['id']){
                        $this->error('该用户名已存在', spUrl('user', 'add'));
                }
                //存储数据库
                $newrow = array(
                        'username' => $this->spArgs('username'),
                        'password' => $this->spArgs('password'),
                        'privilege' => $this->spArgs('privilege'),
                        'time' => time(),
                        'ip' => $_SERVER['REMOTE_ADDRESS'],
                        'status' => $this->spArgs('status'),
                );
                $confirm = $gb->spVerifier($this->spArgs());
                if (false == $confirm) {
                        $gb->create($newrow);
                        $this->success('添加成功', spUrl('user', 'edit'));
                }else {
            foreach ($confirm as $item) {
                foreach ($item as $msg) {
                    $this->error($msg, spUrl("user", "edit"));
                }
            }
        }
        }


model的代码如下;
class users extends spModel{
        var $table="users";
        var $pk="id";
        //验证规则
        var $verifier = array(
                "rules" => array(
                        'username' => array('notnull' => TRUE,'minlength' => 3,'maxlength' => 60),
                        'password' => array('notnull' => TRUE,'minlength' => 3,'maxlength' => 60),
                        'cpassword'    => array('equalto' => 'password'),
                ),
            "messages"   => array(
                      'username' => array('notnull' => "用户名不能为空!",'minlength' => "用户名必须大于3个字符",'maxlength' => "用户名不能超过60个字符"),
                      'password' => array('notnull' => "密码不能为空!",'minlength' => "密码必须大于3个字符",'maxlength' => "密码不能超过60个字符"),
                      'cpassword'    => array('equalto' => "两次密码不一致!"),
            )
          );
}



tpl的代码如下;




Insert title here





       

               
添加管理员

               

                       
                               
                                        用户名
                               
                               
                                        用户组
                                       
                                               
                                       
                               
                               
                                        密码
                               
                               
                                        重复密码
                               
                       
               

               
  

       




2012-08-17 16:19:10

#2 枪炮玫瑰

baidu了一下   有人说  当表单中只有一个text的时候会出现这种情况,在form中加上 onsubmit="return false;"能防止自动提交 ,但是  我这边加了还是 会出现自动提交的

2012-08-17 16:21:38

#3 jake

你看看自己的链接:
{spUrl c=user a=add}">添加用户


{spUrl c=user a=add}">

这不是自动提交,而是你直接点击进入了user/add,两个链接是一样的。

这样,你可以做个一个叫user/form的action页面,用于显示提交表单的。然后第一个链接做成:
添加用户

2012-08-17 16:35:24

#4 枪炮玫瑰

jake 发表于 2012-8-17 16:35
你看看自己的链接:
添加用户
这错误真够低级的,非常感谢您。

2012-08-17 17:00:45

#5 coolcool1265

我靠,这都可以。哎。。。

2012-08-18 16:49:44