Returning from the callback functions of Ajax.Updater doesn't actually
return the value to the scope that called the original function, as far
as I know. Your callback function has been called from within the
Ajax.Updater object and I suspect that you're values are being returned
to methods of that object and not to where you want them to go. Off the
top of my head, you might be better off using the Event.observe()
function. You can then observe() the action of form submission and then
use Event.stop() to halt the submission rather than return false.
Something like this could work (emphasis on could, it's a Monday and my
coffee's not done):
Event.observe($("some_form_id"), "submit", function(event) {
/* ... prepare for Ajax here ... */
new Ajax.Updater("Pseudo", "check.php...", {
method: "get",
onComplete: function(t) {
if(t.responseText == "success") {
/* ... handle success ... */
} else {
/* ... handle failure ... */
Event.stop(event);
}
}
});
}
Using a closure, if I understand the term correctly, on the event
variable within your onComplete callback should halt further processing
of your event, just like returning false to an onsubmit event of a form
would do.
Also, I noticed when working on the above pseudo-code that you've named
your callback function; that's a no-no. The callbacks are meant to be
either anonymous (i.e., without a name) or a specified function defined
elsewhere. You've tried to mix the two defining a function inline with
the Ajax.Updater options object but also giving them a name. This could
also be a problem for you.
- Dash -
[EMAIL PROTECTED] wrote:
> hi guys
>
> sry for my question; dont really know how to fix this
>
> ve got a form to submit but return true everytime!!!
> tx for help :)
>
> <script type="text/javascript" language="javascript">
> function disponibilitePseudo (idImg)
> {
> var pseudoToTest = $('pseudo').value;
> imgPseudo = idImg;
>
> if (pseudoToTest != "")
> {
>
> new Ajax.Updater(
> 'Pseudo',
>
> 'check.php?pseudo='+pseudoToTest+'&Date='+escape(new Date()),
> {
> method:'get' ,
> onComplete:
> function succesRetourAjax (t)
> {
> if (t.responseText == "succes")
> {
> //
> Element.update("retourPseudo","available");
> $(imgPseudo).src =
> 'good.gif';
> Element.hide("Pseudo");
> return true;
> }
> else
> {
>
> Element.show("retourPseudo");
>
> Element.update("Pseudo","Not available");
> $(imgPseudo).src =
> 'wrong.gif';
> return false;
> }
> }
> }
> );
> }
> }
>
> function checkForm()
> {
> return disponibilitePseudo('imgPseudo');
> }
> </script>
>
>
> >
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Spinoffs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---