jQuery远程验证帮助


jQuery remote validation help

我使用验证插件的问题是针对远程调用的。

远程检查以确保员工id从db有效。如果它是有效的,那么它返回一个json字符串,其中包含员工信息(名、姓、主管名和工厂名)。

问题是,如果我返回json字符串使用完整:函数的empid字段保持无效的错误类,并将不允许表单提交,即使一切都是有效的。如果我从远程调用返回true, empID字段是有效的,表单将提交(假设其他字段已完成)。

在json回调中是否有一个特定的参数需要设置为true,用于远程:调用完成并为true?我失去了如何解决这个问题,所以任何帮助将非常感激!相关代码见下文。

               var ajax_data = new Object;
            $('#vpnRequest').validate({
                rules: {
                    empID: {
                        //required: true,
                        //minlength: 4,
                        remote: {
                            url: "checkEmpID.php",
                            dataFilter: function(data) { ajax_data = data; return data;},
                            complete: function() {
                                var jsonObj = new Object;
                                jsonObj = jQuery.parseJSON(ajax_data);
                                var success = jsonObj.status;
                                if(success ==  'false'){
                                    //return success;
                                }else if(success ==  'true'){
                                    $('#fName').val(jsonObj.fName);
                                    $('#lName').val(jsonObj.lName);
                                    $('#superName').val(jsonObj.supervisorFName+" "+jsonObj.supervisorLName);
                                    $('#facilityName').val(jsonObj.facilityName);
                                    $('#empID').addClass('stuff');
                                    $('#empID').removeClass('stuff');
                                    //return success;
                                }
                            }
                        }
                    }
                },
                messages: {
                    empID:{
                        required: "This field is required",
                        remote: "Invalid Employee ID"
                    }
                }
            });

PHP文件empID检查器:

    $string[status] = 'true';
    $string[fName] = ucwords(strtolower($row['empFirstName']));
    $string[lName] = ucwords(strtolower($row['empLastName']));
    $string[supervisorFName] = $superFName;
    $string[supervisorLName] = $superLName;
    $string[facilityName] = $facilityName;
}
$response = json_encode($string);
echo $response;
} else {
$response = json_encode($valid);
echo $response;
}

添加到验证器代码本身:

if ($.isFunction(param.validateResult)) response = param.validateResult(response);
来自站点http://plugins.jquery.com/content/custom-function-handle-returned-data-remote-function的

似乎工作得非常好,因为它正确地验证并提交了表单。如果有人想进一步测试以确保边缘情况,这将是伟大的,但这绝对应该添加到验证器插件,以扩展其功能。