请教,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了。
时间到了,问题暂时不能详细地描写清楚,明天再上来修改修改。 这个你应该用 firebug 看看到底提交的是什么数据,就清楚怎么回事了。 可能是插件问题吧。
我这样写
url : "<?=site_url()?>/register/get_username/",
提交的却是
url : "<?=site_url()?>/register/get_username/?username=jhgasj",
username是输入用户名那个表单,后面=输入的值 呵呵 这是 GET 方式吧!改成 POST 方式,你看看 jq,肯定有个选项的,我对 jq 不熟悉,呵呵。 我试了很多次。 发现问题不在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地址啊? 问题解决了。
修改了一下插件处理url的方法。 让它不自动添加?表单名=值
就OK了! CI 可以接收 GET 传参数,请看 FAQ CI要是把Ajax包进来就轻松了。期待...... CI要是把Ajax包进来就轻松了。期待......
neversaylate 发表于 2009-2-16 17:42 http://codeigniter.org.cn/forums/images/common/back.gif
我在 www.iqwer.com 上实现了一个 CI 结合 mootools 的 ajax 架构。
页:
[1]