jQuery, RoR, validating fields against a database

I have a list of fields in a form that need to be validated against a
database.

I would prefer to have the validation occur every time the field loses
focus (onblur event) rather than when the user does a submit.

Does anyone know of an RoR example of how to do that?

On Jan 31, 2010, at 11:48 AM, Ralph S. wrote:

I have a list of fields in a form that need to be validated against a
database.

I would prefer to have the validation occur every time the field loses
focus (onblur event) rather than when the user does a submit.

Does anyone know of an RoR example of how to do that?

jQuery validate?

http://docs.jquery.com/Plugins/Validation

Steve R. wrote:

jQuery validate?

http://docs.jquery.com/Plugins/Validation

Oh wow! … Thanks!!!

Ralph S. wrote:

I have a list of fields in a form that need to be validated against a
database.

I would prefer to have the validation occur every time the field loses
focus (onblur event) rather than when the user does a submit.

Does anyone know of an RoR example of how to do that?

Remember not to rely on client-side validation. It’s very useful, but
it’s easy to turn off JS and bypass it.

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

Steve R. wrote:

On Jan 31, 2010, at 11:48 AM, Ralph S. wrote:

I have a list of fields in a form that need to be validated against a
database.

I would prefer to have the validation occur every time the field loses
focus (onblur event) rather than when the user does a submit.

Does anyone know of an RoR example of how to do that?

jQuery validate?

http://docs.jquery.com/Plugins/Validation

I think the jQuery validate function I want is “remote”.

Is there any way for that function to call a RoR action in a model or
controller rather than more php or javascript?

On Jan 31, 2010, at 1:04 PM, Ralph S. wrote:

Does anyone know of an RoR example of how to do that?

jQuery validate?

http://docs.jquery.com/Plugins/Validation

I think the jQuery validate function I want is “remote”.

Is there any way for that function to call a RoR action in a model or
controller rather than more php or javascript?

It’s easy. I don’t have any code close at hand, but it’s pretty
straightforward – stick the validation URL in an attribute you can
access then use that. Just remember to have your authenticity
certificate as part of the post data so Rails doesn’t suspect a forgery.

Marnen’s right, you shouldn’t rely completely on client-side validation,
but I typically do as much validation as possible on the client to avoid
beating up the server and/or spoiling the client experience, then
validate everything completely on the server to prevent attacks or
mis-entries on the part of people who have disabled js.

On Jan 31, 2010, at 1:04 PM, Ralph S. wrote:

Does anyone know of an RoR example of how to do that?

jQuery validate?

http://docs.jquery.com/Plugins/Validation

I think the jQuery validate function I want is “remote”.

Is there any way for that function to call a RoR action in a model or
controller rather than more php or javascript?

Here’s some old code I pulled off the shelf…uses jq validate

var validator = $(“#new_user”).validate({
rules: {
“user[login]”: {
required: true,
minlength: 3,
remote: “/users/login_taken”
}
}
});

Pardon the abysmal formatting.

Ralph S. wrote:

Steve R. wrote:

On Jan 31, 2010, at 11:48 AM, Ralph S. wrote:

I have a list of fields in a form that need to be validated against a
database.

I would prefer to have the validation occur every time the field loses
focus (onblur event) rather than when the user does a submit.

Does anyone know of an RoR example of how to do that?

jQuery validate?

http://docs.jquery.com/Plugins/Validation

I think the jQuery validate function I want is “remote”.

Is there any way for that function to call a RoR action in a model or
controller rather than more php or javascript?

If you can call PHP, you can call Rails. The client-side JS knows
nothing about the server-side scripting language.

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]