0

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

生成代码.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;
4

1 回答 1

2

您应该调用preventDefault作为参数传递给处理程序的事件对象,以确保一切正常跨浏览器。

$("#generate_code").click(function(e){
    e.preventDefault();
    ...
于 2013-09-24T22:57:23.187 回答