115873491 发表于 2009-1-15 23:39:27

请教,jQuery中formValidator2.1插件验证用户名是否重复的问题

本人刚接触ci和jquery2天。
学习用ci做个用户注册的页面。需要判断输入的注册名是否重复。
于是找到了jQuery,找到了formValidator2.1插件。

下面是问题

http://192.168.1.4/CodeIgniter/index.php/register   这里是注册页面

控制器里有个get_username函数。
function get_username($username){
$this->db->select('username');
$this->db->where('username',$username);
$this->db->from('users');
$query = $this->db->get();
if ($query->num_rows()>0)
{
   echo '0';
}
else
{
   echo '1';
}
}
以下是view/register.php文件中的ajax验证部分。(AjaxValidator和jQuery中的$.ajax一样)
.AjaxValidator({
   type : "post",
url : "<?=site_url()?>/register/get_username/" + $("#username").val(),
datatype : "text",
success : function(data){
            if( data == "1" )
   {
                return true;
   }
            else
   {
                return false;
   }
},
buttons: $("#button"),
error: function(){alert("error");},

每次在表单中输入用户名并onblur的时候,都会触发这个事件,但是每次都是返回error。请问是怎么回事?

如果url我写一个准确的地址, 比如<?=base_url()?>test.php 就不会返回error了。

时间到了,问题暂时不能详细地描写清楚,明天再上来修改修改。

Hex 发表于 2009-1-16 00:00:20

这个你应该用 firebug 看看到底提交的是什么数据,就清楚怎么回事了。

115873491 发表于 2009-1-16 08:41:45

可能是插件问题吧。
我这样写
url : "<?=site_url()?>/register/get_username/",

提交的却是
url : "<?=site_url()?>/register/get_username/?username=jhgasj",

username是输入用户名那个表单,后面=输入的值

Hex 发表于 2009-1-16 10:15:02

呵呵 这是 GET 方式吧!改成 POST 方式,你看看 jq,肯定有个选项的,我对 jq 不熟悉,呵呵。

115873491 发表于 2009-1-16 10:42:14

我试了很多次。 发现问题不在post或者get上

关键是url这段,无论怎么写,jQuery这个插件都会在请求的url后面加上?表单名=值

比如 url : "<?=site_url()?>/register/get_username/"

在Firebug下显示请求的地址为 <?=site_url()?>/register/get_username/?username=sdahjd

假如 <?=site_url()?>/register/get_username/sdahjd 是可以处理的

可是现在请求的url变成了<?=site_url()?>/register/get_username/?username=sdahjd 就会返回404错误。

想问一下CI能不能处理这样的URL地址啊?

115873491 发表于 2009-1-16 10:57:53

问题解决了。

修改了一下插件处理url的方法。 让它不自动添加?表单名=值

就OK了!

Hex 发表于 2009-1-16 11:31:52

CI 可以接收 GET 传参数,请看 FAQ

neversaylate 发表于 2009-2-16 17:42:28

CI要是把Ajax包进来就轻松了。期待......

Hex 发表于 2009-2-16 22:36:18

CI要是把Ajax包进来就轻松了。期待......
neversaylate 发表于 2009-2-16 17:42 http://codeigniter.org.cn/forums/images/common/back.gif
我在 www.iqwer.com 上实现了一个 CI 结合 mootools 的 ajax 架构。
页: [1]
查看完整版本: 请教,jQuery中formValidator2.1插件验证用户名是否重复的问题