我有以下代码,直到现在才正常工作,event.preventDefault();似乎没有在FireFox中触发?在Chrome中,代码仍然正常,但在Firefox中,它会将我带到空白页面,而是在那里看到生成的代码。
$("#generate_code").click(function(){
event.preventDefault();
$('#code').html('Generating Code..');
hideshow('loading',1);
setTimeout(function() {
$.get("generate-code.php", function(data) {
$("#code").html(data);
});
hideshow('loading',0);
}, 2000);
});
生成-code.php:
function generateRandomString($length = 50) {
$characters = '!@#$%^&*()0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
$invitecode = generateRandomString();
echo $invitecode;
答案 0 :(得分:2)
您应该在作为参数传递给处理程序的事件对象上调用preventDefault
,以确保所有内容都能跨浏览器工作。
$("#generate_code").click(function(e){
e.preventDefault();
...