event.preventDefault();停止在FF工作

时间:2013-09-24 22:54:36

标签: javascript php jquery

我有以下代码,直到现在才正常工作,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;

1 个答案:

答案 0 :(得分:2)

您应该在作为参数传递给处理程序的事件对象上调用preventDefault,以确保所有内容都能跨浏览器工作。

$("#generate_code").click(function(e){
    e.preventDefault();
    ...