2013-01-04 105 views
1

我想提交表單onclick的錨點。下面是代碼:Javascript表單提交onclick不能在谷歌瀏覽器工作

function submitLink() { 
    document.forms["background-form"].submit(); 
    return false; 
} 

此代碼工作在FF和IE瀏覽器,但無法在Chrome。有人知道爲什麼我打電話這樣的功能:

<a href="<?php echo "background.php?cred=".$cred['id']; ?>" onclick="submitLink();">Remove</a> 

回答

2

您需要從onclick函數返回false以防止默認操作。 否則,你只需按照鏈接。

嘗試像這樣

<a href="<?php echo "background.php?cred=".$cred['id']; ?>" onclick="return submitLink();">Remove</a> 

我也應該注意到,您的鏈接不是一個錨鏈接,錨鏈接都需要有一個fragmentation identifier。你的鏈接只是一個鏈接,點擊後,瀏覽器將通過http獲取請求導航到它,導致當前頁面卸載。

但是,通過jQuery綁定事件處理程序並使用內置的preventDefault功能會更好。

瞭解更多關於在這裏

http://api.jquery.com/event.preventDefault/

+0

非常感謝威廉。現在的問題是,它提交的表單沒有去那個錨鏈接。任何解決此問題的方法都不會改變表單動作來重定向?只是想要發佈數據,然後是要遵循的鏈接。 – Arun

+0

是的,因爲你的鏈接不是一個錨鏈接,我編輯我的答案澄清 –

+0

有一種喜歡這種方法jQuery的用法。如果該字符串是在頁面加載後很長時間由一些javascript代碼生成的,那麼'$(document).ready'函數中的jquery回調將不起作用。 –

0

如果您發現onClick事件不會對谷歌Chrome瀏覽器,那麼這裏就是快速的方法來解決這個問題:

更換onclick形式ID與它的名字,例如,假設您有以下內容:

<form id="form1" name="checkform1" 

查找JS事件:

onclick="document.form1.cSSld.value=''" 

替換:

onclick="document.checkform1.cSSld.value=''" 

所有集。它現在適用於所有網頁瀏覽器。

相關問題