# Field-by-field confirmation popup

**URL:** <https://www.ruby-forum.com/t/field-by-field-confirmation-popup/78683>\
**Category:** Rails\
**Created:** [December 7, 2006, 8:27pm UTC](https://www.ruby-forum.com/t/field-by-field-confirmation-popup/78683 "2006-12-07T20:27:27Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![shauna](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/6f9a4e/32.png) [@shauna](https://www.ruby-forum.com/u/shauna)\
**Post date:** [December 7, 2006, 8:27pm UTC](https://www.ruby-forum.com/t/field-by-field-confirmation-popup/78683/1 "2006-12-07T20:27:27Z")

</div>

Hi, I’ve searched and can’t find a straightforward answer to my  
particular need. There are actually two related situations I need to  
find solutions for.

1. On a data entry form, for certain fields I want to do some validation  
right after the user leaves the field (rather than wait until the entire  
form is completed). If invalid, I want a modal window to pop up with my  
composed message in it and an OK button. When the user presses OK,  
control returns to the data entry form remaining in the problem field.

2. On a data entry form where an existing record is being updated, if  
the user changes a non-empty field to different value in any field (with  
a few exceptions), I want a modal window to pop up with a confirmation  
message and OK and Cancel buttons. When the user presses OK, control  
continues normally to the next field on the form. When Cancel, the  
user’s change will be reversed (restoring the previous value to the  
field) and control remains in the problem field.

Is there one simple way to do each of these two things (hopefully DRY  
for the second one)?

Thanks,  
Shauna

---

<div class="post-metadata">

**Author:** ![shauna](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/6f9a4e/32.png) [@shauna](https://www.ruby-forum.com/u/shauna)\
**Post date:** [December 7, 2006, 9:00pm UTC](https://www.ruby-forum.com/t/field-by-field-confirmation-popup/78683/2 "2006-12-07T21:00:48Z")

</div>

Shauna wrote:

> 

Sounds like you’d want a GUI (desktop) app instead ;-)…

Ditto on what Jason said on JavaScript.

Long  
www.edgesoft.ca/blog/read/2

---

<div class="post-metadata">

**Author:** ![shauna](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/6f9a4e/32.png) [@shauna](https://www.ruby-forum.com/u/shauna)\
**Post date:** [December 7, 2006, 9:32pm UTC](https://www.ruby-forum.com/t/field-by-field-confirmation-popup/78683/3 "2006-12-07T21:32:21Z")

</div>

Bingo!

I’m trying to create a web-based version of a desktop app for  
proof-of-concept. So there are a few key things that I need to check out  
to see if this is feasible within a reasonable timeframe. Rails  
simplifies a great many aspects that would otherwise require complex  
combinations of available methods. Can it help with this one?

Thanks for all the help I’ve received from this forum - both from  
searching it for past solutions and for answering my questions!

Shauna

---

<div class="post-metadata">

**Author:** ![shauna](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/6f9a4e/32.png) [@shauna](https://www.ruby-forum.com/u/shauna)\
**Post date:** [December 7, 2006, 10:03pm UTC](https://www.ruby-forum.com/t/field-by-field-confirmation-popup/78683/4 "2006-12-07T22:03:06Z")

</div>

If it’s input format validation, that can be done in pure JavaScript  
with no  
repercussions. Just link up a field with the onBlur() event (I think,  
and  
that might not be fully cross-browser) for validation. Otherwise, for  
real-time password type data validation, you’ll need to use the  
observe\_field() helper and return some RJS code to pop up the dialog and  
then select the field. Help on these specific topics are on this list,  
in  
the Rails docs: [api.rubyonrails.com](http://api.rubyonrails.com), and (I think) in the newest of  
Agile  
Programming with Rails.

Jason

---

<div class="post-metadata">

**Author:** ![shauna](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/6f9a4e/32.png) [@shauna](https://www.ruby-forum.com/u/shauna)\
**Post date:** [December 7, 2006, 10:23pm UTC](https://www.ruby-forum.com/t/field-by-field-confirmation-popup/78683/5 "2006-12-07T22:23:02Z")

</div>

Thanks, Jason. That gives me some paths to follow in the thicket of  
possibilities!

Shauna

---

<div class="post-metadata">

**Author:** ![shauna](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/6f9a4e/32.png) [@shauna](https://www.ruby-forum.com/u/shauna)\
**Post date:** [December 8, 2006, 3:57am UTC](https://www.ruby-forum.com/t/field-by-field-confirmation-popup/78683/6 "2006-12-08T03:57:42Z")

</div>

Shauna wrote:

> 1. On a data entry form where an existing record is being updated, if  
> Thanks,  
> Shauna
> 
> –  
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/)

I have actually been working on a system that creates a ‘live-form’  
that uses AJAX to do real time validations and some other funky stuff.  
It’s still pretty rough around the edges, and real work keeps  
preventing me from extracting it for the moment, but it is possible.

The gist of the way it works is to create a form\_observer that calls a  
form validation method. This method returns an RJS template that  
updates the page to indicate errors and provide some other useful  
feedback. This approach has a bunch of pitfalls, but when it works  
well, it’s wonderful.

Hopefully I’ll be able to write this up in more detail soon, so watch  
this blog for details… [www.sciwerks.com/blog](http://www.sciwerks.com/blog)

---

<div class="post-metadata">

**Author:** ![shauna](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/6f9a4e/32.png) [@shauna](https://www.ruby-forum.com/u/shauna)\
**Post date:** [December 7, 2006, 10:39pm UTC](https://www.ruby-forum.com/t/field-by-field-confirmation-popup/78683/7 "2006-12-07T22:39:11Z")

</div>

On Thursday 07 December 2006 20:27, Shauna wrote:

> Hi, I’ve searched and can’t find a straightforward answer to my  
> particular need. There are actually two related situations I need to  
> find solutions for.
> 
> 1. On a data entry form, for certain fields I want to do some  
> validation right after the user leaves the field (rather than wait  
> until the entire form is completed). If invalid, I want a modal  
> window to pop up with my composed message in it and an OK button.  
> When the user presses OK, control returns to the data entry form  
> remaining in the problem field.

I’d be very annoyed if I were lambasted by a modal dialog each time each  
time I haven’t filled-in a field correctly. Of course, I want to be  
notified that there’s something wrong with the field, but I’d much  
prefer a more unobtrusive way.

That said, have a look at the recent thread with subject “Java script  
validations”.

> 1. On a data entry form where an existing record is being updated, if  
> the user changes a non-empty field to different value in any field  
> (with a few exceptions), I want a modal window to pop up with a  
> confirmation message and OK and Cancel buttons. When the user presses  
> OK, control continues normally to the next field on the form. When  
> Cancel, the user’s change will be reversed (restoring the previous  
> value to the field) and control remains in the problem field.

Here, too, I’d recommend a less obtrusive approach. Mark changed fields  
in some way or show the old values next to the current ones.

Once upon a time, I’ve written a small script that does the marking.

[http://www.schuerig.de/michael/javascript/change\_marker.js](http://www.schuerig.de/michael/javascript/change_marker.js)

Please don’t take this script as is, only as a source for ideas. Also,  
have a look at the validator script in the plugin I refer to in the  
thread mentioned above.

Michael

–  
Michael S.  
[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
[http://www.schuerig.de/michael/](http://www.schuerig.de/michael/)
