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
