Errors with event.preventdefault
This doesn't work
JS:
var currentPath = window.location.pathname; var currentPage = currentPath.substring(currentPath.lastIndexOf('/') + 1); $(function() { $("#shoutBox").submit(function(event) { event.preventDefault(); var values = $('#shoutBox').serialize(); $.post("shoutbox.php", values) .done(function(data) { $('input:text[name=shout]').val("JE SHOUT IS GEPOST! WACHT 1 MINUUT!"); $('input:text[name=shout]').attr('readonly', true); setTimeout( function() { $('input:text[name=shout]').val("JE KAN EEN NIEUWE SHOUT MAKEN!"); $('input:text[name=shout]').attr('readonly', false); }, 60000); }); }); }); $(function() { $("#newName").submit(function(event) { event.preventDefault(); var valuen = $('#newName').serialize(); $.post("shoutbox.php", valuen) .done(function(data) { reload(); }); }); }); function to_new_page(link) { $("#content").fadeOut(function() { $(this).load(link+" #content", function() { $(this).fadeIn(); }) }); history.pushState({change: "page"}, "RandomRadio", "/"+link); } function reload() { to_new_page(currentPage); }
Form #shoutBox works sucessfully.
But when I submit the form #newName twice, it will refresh the page.
Perhaps because your .done
calls reload()
?
Nevertheless, I would add return false;
$("#newName").submit(function(event) {
event.preventDefault();
var valuen = $('#newName').serialize();
$.post("shoutbox.php", valuen)
.done(function(data) {
reload();
});
return false;
});
And please, fix your quotation. Either choose single or double quotes and stick to that.
I have a fix :)
I added a id to my submit buttons and used this
$("#submitshout").live("click", function(event){
instead of
$("#shoutBox").submit(function(event) {链接地址: http://www.djcxy.com/p/51958.html