表单验证之失去焦点校验

samsam 3月前 309

使用场景:会员名、标题等唯一性校验
效果图
微信图片_20180509092615.png

1.HTML部分

  • 添加
<input id="c-title" data-rule="required;remote(get:archives/check_title_available)" class="form-control" name="row[title]" type="text" value="">

备注:
data-rule="required;remote(get:archives/check_title_available)"
这句话的含义:
校验规则
required 必填
remote(get:archives/check_title_available) 访问地址为archives/check_title_available,控制器名:archives,函数名:check_title_available

  • 编辑
<input id="c-title" data-rule="required;remote(get:archives/check_title_available?row[id]={$row.id})" class="form-control" name="row[title]" type="text" value="{$row.title}">

备注:
data-rule="required;remote(get:archives/check_title_available?row[id]={$row.id})"
与上述所说的,添加后缀?row[id]={$row.id},此为get参数,id为不含当前编辑的文章。

2.控制器部分

    public function check_title_available(){
        $params = $this->request->get("row/a");
        $title = $params['title'];

        $id = isset($params['id']) ? (int)$params['id'] : '';
        if($id){
            $this->model->where('id', '<>', $id);
        }
        $count = $this->model->where('title', '=', $title)->count();
        if ($count > 0)
        {
            $this->error('该标题已经占用');
        }
        $this->success();
    }

具体的业务逻辑还需要各位大神自行修改,在此只是一个简单的demo,希望大家喜欢。grinning
喜欢这篇文章的点赞!!舍得给点零花钱的扫码!!最重要的是您开心、幸福美满!!!
zf.png

最后于 3月前 被samsam编辑
最佳回复
  • F4NNIU 3月前

    感谢分享。
    已经打赏。

最新回复 (2)
  • F4NNIU 打赏 最佳回复 3月前
    感谢TA
    0 引用 2

    感谢分享。
    已经打赏。

  • 偏南风 27天前
    感谢TA
    0 引用 3

    不错,给了我很大的帮助

  • 未登录
    4
返回