2012-04-12 80 views
0

我正在使用ajax。
瀏覽器是谷歌瀏覽器。
當我單擊提交時,我的瀏覽器提交表單,而不是提醒。 這裏有什麼問題?jquery。提交不在鉻上工作

<html> 
    <head> 
    <script type="text/javascript" src="/cp/scripts/jquery-1.7.2.js"></script> 
    <script language="javascript"> 
    $("#test").submit(function(){ 
    //$.post("test.php", this.serialize()); 
    alert('ok'); 
    return false; 
    }); 
    </script> 
    </head> 
    <body> 
    <form id="test"> 
    <input type="text" name="name"> 
    <input type="submit"> 
    </form> 
    </body> 
    </html> 

回答

8

腳本執行時尚未定義窗體。它包裝在一個$().ready事件:

$(document).ready(function() { 
    $("#test").submit(function() { 
    //$.post("test.php", this.serialize()); 
    alert('ok'); 
    return false; 
    }); 
}); 

我可以看到以下問題來了:「沒有定義什麼?」。
是:

... 
# Hey, a script tag, let's wait, and load the resource. 
<script type="text/javascript" src="/cp/scripts/jquery-1.7.2.js"></script> 

# Hey a script tag! 
<script language="javascript"> 
$("#test").submit(function(){ 
//$.post("test.php", this.serialize()); 
alert('ok'); 
return false; 
}); 
</script> 
# The script block has ended, let's parse the script 
# ... *calls* $('#test'). .... 

# Now, #test is defined. Too late... 
<form id="test"> 
# ... 
1

首先,確保正在對document.ready執行的函數,然後不要忘記防止對submit事件的默認行爲:在測試上jsFiddle

$(document).ready(function() { 
    $("#test").submit(function(evt){ 
     evt.preventDefault(); 
     alert('ok'); 
     return false; 
    }); 
}); 

鉻。

+0

這工作就像一個魅力。 – 2012-04-12 16:19:09

+0

@HardeepBrah - 太好了,我很高興聽到它。如果對你有幫助,請記得接受我的回答。 – 2012-04-12 16:21:07