Link to home
Start Free TrialLog in
Avatar of kpisor
kpisorFlag for Japan

asked on

Submit button does not work in Safari or Camino; works fine in FF

http://www.missionpeoplesystems.com/Clients/English_Adventure_Test/program.php?pk_program=2

Click the "Register Online Now" button, and click through to get to the registration form.

I've tested this entire flow and it's working well in Firefox, but the Submit button just sits there and does not respond when you try to click it in Safari or Camino.

Could someone take a look at the page code and let me know what I'm screwing up?
Avatar of R-Byter
R-Byter
Flag of Serbia image

I would but its hard to look at this language. Do you have English or any version with Latin characters?

Regards
Avatar of kpisor

ASKER

Sure. Just go to any of the regular pages, and click the English toggle at the upper left of the page. Then go into the registration page. The form will be in English.
That submit button doesnt work in Firefox also.
If I click submit without entering any data it gives me info that I need to fill some required fields. So button is working in FF and Safari. However, if I fill all required data, button doesnt work in any browser.
I suspect that the problem is in your validation since you call it in formCamperRegistration,js file:

$('#RegSubmit').click(function(){
     $('#RegForm').validate();
}); 

Open in new window


Change it like this:

$('#RegSubmit').validate({
        submitHandler: function(form) {
   	     form.submit();
        }
});

Open in new window


Regards
Avatar of kpisor

ASKER

R-Byter:
That took care of the submit function, but the validate() doesn't work now. The form is submitted despite the substantial validation checks in the form.
Any suggestions?
Karl
Avatar of kpisor

ASKER

Typically, the validate() plugin for JQuery requires the form's ID

#RegForm

as the selector argument. Just so you know.
My mistake with the previous code (copy/paste - root of all errors :) )
This should work:

$('#RegForm').validate({
        submitHandler: function(form) {
             form.submit();
        }
});

Open in new window


Regards
Avatar of kpisor

ASKER

Okay, made this change, and the form submit button stops working in Safari. Same as the original problem.

If the form is blank, and there is no entry, then the validate() runs correctly in Safari. However, if you make ANY entry at all in Safari, and then click the Submit button, it doesn't submit the form.

Form functions perfectly in Firefox.
Avatar of kpisor

ASKER

Try it yourself in Safari at
http://www.missionpeoplesystems.com/Clients/English_Adventure_Test/program.php?pk_program=2

You might toggle the language selection if you see the page in Japanese.
Avatar of Michel Plungjan
Seems to work in Safari5 on Mac
Avatar of kpisor

ASKER

In Safari 5--
Yes, the initial validation works. That is, validate() displays error messages normally. But, when you try to re-submit the form, the Submit button doesn't do anything. You are stuck on the page.
Also, if you enter all correct entries in Safari 5, the Submit button will go inactive.

JavaScript code for the submit function:
// Main registration form
             $('#RegForm').validate({
              submitHandler: function(form) {
                          form.submit();
              }
Why would you submit the form in the handler?
Just validate and have the form submit because the validation works
I do not think you need to do any .submit()
Avatar of kpisor

ASKER

How would you change the code?

My production site is currently running with
$('#RegSubmit').click(function(){
                  $('#RegForm').validate();                                             
             });
Not on a pc now but that looks wrong. I expect to see a ready statement with a validate assignment only and no click needed
Avatar of kpisor

ASKER

Please keep in mind that my main problem is my Mac/iPad/iPhone users, on Safari: they are 18% of my users, so I can't just force the solution that works in Firefox on them.
I was not thinking of FX only. I'll look later how you need to do this
Just do this. Nothing else is needed (assuming you have included the jQuery libraries

$(document).ready(function() {
  $('form').validate();
});
Avatar of kpisor

ASKER

Yes, I tried this on my test server. Same behavior persists. If validate() returns an error, and you fix it in Safari, then try to click on the submit button again, nothing happens. Firefox works fine.

Please help, I'd really like to fix this in Safari!
Can you post the HTML and script ?
Avatar of kpisor

ASKER

HTML: view source, the JQuery is written above.
Interesting

It works perfectly (saf 5 mac) until I select a t-shirt !? then the submit stops taking me to the fields in error

Very peculiar
ASKER CERTIFIED SOLUTION
Avatar of Michel Plungjan
Michel Plungjan
Flag of Denmark image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of kpisor

ASKER

You got it right on.

I totally overlooked this, as I develop and test in Firefox, and FF passed the submit right through without stopping.

Thanks for your help!
You are welcome. Weird error.

So Fx actually ignores validation on fields in hidden divs?