[英]jQuery validation with Codeigniter problem
我有一个输入字段,我想在用户键入时动态验证...我正在使用Codeigniter,我相信我有一些URI问题...让我向您展示代码...
HTML / PHP:
<input type="text" id="username"> <span id="validateUsername"></span>
jQuery的:
$(document).ready(function() {
var validateUsername = $('#validateUsername');
$('#username').keyup(function () {
var t = this;
if (this.value != this.lastValue) {
if (this.timer) clearTimeout(this.timer);
validateUsername.removeClass('error').html('<img src="<?php echo site_url("public/images"); ?>/ajax-loader.gif" height="16" width="16" /> checking availability...');
this.timer = setTimeout(function () {
$.ajax({
url: '<?php echo base_url(); ?>register/check_user/' + t.value,
dataType: 'json',
type: 'POST',
success: function (j) {
validateUsername.html(j.msg);
}
});
}, 200);
this.lastValue = this.value;
}
});
});
我的codeigniter控制器具有一个非常简单的功能:
function check_user($username) {
// var_dumping stuff goes here
}
在这里,我只是想尝试var_dump不同的东西(例如$ _SERVER,$ _ REQUEST,$ username),但是我认为我的脚本甚至没有到达那个控制器...
我正在尝试更改url: '<?php echo base_url(); ?>register/check_user/' + t.value,
url: '<?php echo base_url(); ?>register/check_user/' + t.value,
在我的jQuery脚本中,但似乎没有任何组合有效。 例如:
url: '<?php echo site_url('register/check_user/'); ?>' + t.value,
url: 'index.php/register/check_user/' + t.value,
url: 'register/check_user/' + t.value,
...无论我尝试什么,我的validateUsername
范围都只会显示“正在检查可用性”消息。
我正在Chrome,Safari和IE8中尝试脚本。 PHP版本是5.3.0,而jQuery是1.4.2 ...
有什么想法在这里可能出什么问题吗?
感谢您的任何帮助!
我发现您的代码可能存在多个问题:
路线设置正确吗?
在您的CodeIgniter 路线中 ,执行以下操作:
$route['register/check_user/(:any)'] =" register/check_user/$1";
在您的CodeIgniter控制器中,使用以下命令访问变量:
function check_user() {
$username = $this->uri->segment(3);
var_dump($username);
// var_dumping stuff goes here
}
另外,我建议使用jQuery Text Change event ,它对我很有用,而不是使用setTimeouts和keyup。
例:
$('#username').bind('textchange', function () {
$.post('<?php echo base_url(); ?>register/check_user/' + this.value, function(data) {
$('#validateUsername').html(data);
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.