The jQuery Validate libraries "remote" parameter uses GET method for
AJAX calls. If nothing is given as the "type" parameter in $.ajax()
method, GET is taken by default. But working with PHP with some famous
framework like codeigniter which normally don't work with GET method
in URL makes it difficult to use the remote parameter. So in the
Validate plugin, it should be specified type : "POST" in the following
method around line 878 of jquery.validate.js (1.4).

                remote: function(value, element, param) {
                        if ( this.optional(element) )
                                return "dependency-mismatch";

                        var previous = this.previousValue(element);

                        if (!this.settings.messages[element.name] )
                                this.settings.messages[element.name] = {};
                        this.settings.messages[element.name].remote = typeof
previous.message == "function" ? previous.message(value) :
previous.message;

                        if ( previous.old !== value ) {
                                previous.old = value;
                                var validator = this;
                                this.startRequest(element);
                                var data = {};
                                data[element.name] = value;
                                $.ajax({
                                        url: param,
                                        mode: "abort",
                                        port: "validate" + element.name,
                                        dataType: "json",
                                        data: data,
                                        success: function(response) {
                                                if ( !response ) {
                                                        var errors = {};
                                                        errors[element.name] =  
response || validator.defaultMessage
( element, "remote" );
                                                        
validator.showErrors(errors);
                                                } else {
                                                        var submitted = 
validator.formSubmitted;
                                                        
validator.prepareElement(element);
                                                        validator.formSubmitted 
= submitted;
                                                        
validator.successList.push(element);
                                                        validator.showErrors();
                                                }
                                                previous.valid = response;
                                                validator.stopRequest(element, 
response);
                                        }
                                });
                                return "pending";
                        } else if( this.pending[element.name] ) {
                                return "pending";
                        }
                        return previous.valid;
                },



Reply via email to