Hi, > Turns out the problem I was using: > > <input type="submit" value="Login" onclick="login_staff();" /> > > instead of > > <input type="button" value="Login" onclick="login_staff();" /> > > Not sure why, but IE doesn't mind using type='submit' on the button, > but Firefox & Chrome won't.
Because a 'submit' button submits the form, which completely refreshes the page; a 'button' doesn't do that. Sorry, I completely focussed on the Javascript and ignored the HTML. If you wanted to use a submit button (for graceful degradation in case Javascript isn't enabled) you'd want an onsubmit handler for the form that cancelled the form submission. -- T.J. :-) On May 7, 7:09 am, hellboy1975 <[email protected]> wrote: > Ok, ignore all of that - I managed to find the problem which waiting > for the message to be moderated. > > Turns out the problem I was using: > > <input type="submit" value="Login" onclick="login_staff();" /> > > instead of > > <input type="button" value="Login" onclick="login_staff();" /> > > Not sure why, but IE doesn't mind using type='submit' on the button, > but Firefox & Chrome won't. > > On May 7, 9:06 am, hellboy1975 <[email protected]> wrote: > > > > > > > Hi Guys, > > > I'm relatively new to AJAX and Prototype, so please be gentle with me. > > > I've been working on getting what I expected was a simple AJAX request > > into my site, and the code I've created looks right to me, however > > only works in Internet Explorer. Initially I thought the problem > > might be Prototype, but I quickly did the same thing in jQuery, and > > that also fails in the same way. > > > All the code is being run on localhost, and it's basically a PHP site > > running with Smarty, communicating with a Web Service responding with > > JSON. > > > Firstly, the HTML: > > > <html> > > <head> > > <title>VA PHP Test Site</title> > > > <script type="text/javascript" src="scripts/prototype.js"></ > > script> > > <script type="text/javascript" src="scripts/va-login.js"></ > > script> > > > </head> > > <body> > > <h1>VA PHP</h1> > > > <p>Please Log In:</p> > > <form id="login-form"> > > User: > > <input type="text" name="Person" /> > > <br /> > > Password: > > <input type="text" name="Password" /> > > <input type="submit" value="Login" onclick="login_staff();" /> > > </form> > > > <div id="login-response"></div> > > </body> > > </html> > > > And the Javascript: > > > function login_response(response) { > > var login = response.responseJSON; > > alert("State: " + login.LoginState + "\nAccount: " + login.Account + > > "\nUser: " + login.User + "\nPassword: " + login.User); > > > } > > > function login_staff() > > { > > var loginString; > > var url='LoginWSO.wso/Login_Staff/JSON'; > > > // this sets loginString to "Person=value1&Password=value2" > > loginString = Form.serialize("login-form"); > > > // creates and sends the request. > > // pops an alert if there is an error, or fires login_response when > > complete > > var myAjax = new Ajax.Request( > > url, > > {method: 'POST', parameters: loginString, contentType: > > 'application/json', > > onComplete: function(response){alert('response ' + > > response.responseJSON); }, > > onFailure: function(){ alert('Something went > > wrong...'); } > > } > > ); > > > } > > > Just to sum it it, while using the Chrome debugger I found the > > following: > > 1. login_staff is fired, and appears to collect the various settings > > ok > > 2. onComplete occurs and the login_response function is sent - however > > the response variable is null > > 3. As a result the alert appears, but is largely blank > > > In Internet Explorer, the alert pops up, and contains the correct > > response. > > In Firefox the behaviour is much the same as Chrome, however if I put > > a break point on, and take my time stepping through the code, the > > correct alert does actually appear. If it let it run normally > > however, it behaves the same as Chrome. > > > My initial thoughts were that same origin policy, but given that it's > > all on localhost, I'm not sure why this would be the case. > > > Any suggestions gratefully appreciated! > > > Thanks, > > Matt > > > -- > > You received this message because you are subscribed to the Google Groups > > "Prototype & script.aculo.us" 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 > > athttp://groups.google.com/group/prototype-scriptaculous?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Prototype & script.aculo.us" 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 > athttp://groups.google.com/group/prototype-scriptaculous?hl=en. -- You received this message because you are subscribed to the Google Groups "Prototype & script.aculo.us" 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/prototype-scriptaculous?hl=en.
