我想在不提交表单的情况下验证某些表单字段。
如果有人可以提供帮助,这是我的代码。
查看:
<form>
<input type="text" name="first_name" placeholder="First Name..." class="textfield">
<a href="javascript:void();" onClick="validateName();">
</form>
脚本:
function validateName(){
var first_name = $('.textfield').val();
$.ajax({
url: "Eligibility/contAjax",
type: "POST",
data: first_name,
dataType:"json",
success: function(response){
var obj = eval(response);
if(obj.error==0){
console.log('Success');
}
else{
console.log('Failed');
}
}
});
}
控制器:
public function contAjax(){
// loading form validation library //
$this->load->library('form_validation');
$this->form_validation->set_rules('first_name', 'First name', 'required');
if($this->form_validation->run()== TRUE){
echo json_encode(array('error' => 0));
}
else{
echo json_encode(array('error' => 1));
}
}
它总是返回error = 1并且表单验证不起作用......
答案 0 :(得分:0)
这是未经测试的代码......但应该有用(他笑着说)
function validateName() {
var first_name = $('.textfield').val();
console.log('first_name is ' + first_name); // Check it's getting this far
$.ajax({
url: "Eligibility/contAjax",
type: "POST",
data: {first_name: first_name},
dataType: "json",
success: function (response) {
if (response.error == 0) {
console.log('Success');
}
else {
console.log('Failed');
}
}
});
}
因此,通过添加console.log,您可以轻松检查您的价值......
我不是在网址中使用大写字母的忠实粉丝(仅适用于Windows并且可能导致linux / apache服务器上流泪)所以最好使用小写。
只是为了添加一些调试,你可以用简洁的方式检查服务器端看到你发布的内容......
这只是一种检查发布值的方法(使用像firebug或类似的东西要好得多......)
function contAjax() {
// loading form validation library //
$this->load->library('form_validation');
$this->form_validation->set_rules('first_name', 'First name', 'required');
$first_name = $this->input->post('first_name');
if ($this->form_validation->run() == TRUE) {
echo json_encode(array('error' => 0, 'first_name' => $first_name));
} else {
echo json_encode(array('error' => 1, 'first_name' => $first_name));
}
}
你的JS会变成......
function validateName() {
var first_name = $('.textfield').val();
console.log('first_name is ' + first_name); // Check it's getting this far
$.ajax({
url: "Eligibility/contAjax",
type: "POST",
data: {first_name: first_name},
dataType: "json",
success: function (response) {
if (response.error == 0) {
console.log('Success - First Name = ' + response.first_name);
}
else {
console.log('Failed - First Name = ' + response.first_name);
}
}
});
}
诀窍是知道如何&#34;看&#34;正在发生的事情使得调试这类事情变得更容易......
希望有所帮助。这个代码再次未经测试,但显示了主要内容......