I am using jQuery to post a form field to a PHP file that simply returns 1/0 depending on whether it worked or not...
Extract of the code:
$.ajax({ url: "ajax/save_text.php", //Relative?!? //PHP Script type: "POST", //Use post data: 'test=' + $(this).val(), datatype: 'text', //Pass value cache: false, //Do not cache the page success: function(html) { if (html == 1) { $(this).hide().siblings('span').html($(this).value).show(); alert("awesome!"); } else alert('It didn\'t work!'); }, //Error error: function() { alert("Another type of error"); } });
However everytime it is successful (html == 1) the console throws up the error
Uncaught TypeError: Cannot read property 'defaultView' of undefined"
and the alert never happens...?
Google doesn't seem to have much info on this error and jQuery, who knows the cause?
It's because this
isn't what you were dealing with before, it's now tha ajax
jQuery object, add the context
option of $.ajax()
like this:
$.ajax({ context: this, url: "ajax/save_text.php", ...
This way this
inside your callbacks refers to the same this
as when you're calling $.ajax()
. Alternatively, just hold onto a reference to this
in a separate variable.
Also, you'll need to adjust $(this).value
, you probably meant this.value
or $(this).val()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With