2011-04-27 139 views
3

嘿那裏是我的程序的鏈接,如圖和的onclick它調用如圖所示的功能clearform:問題的javascript:返回false不工作

HTML代碼:

<a class="button" href="Cancel" style="left: 55%;" onclick="clearForm()">Cancel</a> 

的JavaScript代碼:

function clearForm(){ 
     document.getElementById("subjectName").value = ""; 
     return false; 
    } 

返回false在此代碼中不起作用。實際上函數的第一行成功執行,但返回false失敗。我的意思是頁面被重定向到url「取消」。

回答

17

更改代碼

<a class="button" href="Cancel" onclick="return clearForm()">Cancel</a> 
+0

kk謝謝你的工作。 – codeomnitrix 2011-04-27 07:32:49

+0

很高興幫助你。 – Vijay 2011-04-27 10:29:18

+1

如果clearForm()具有javascript錯誤,則這不會停止默認操作。請參閱我的回答以獲得防彈方法。 – mrbinky3000 2012-02-07 15:35:15

1
<a class="button" href="Cancel" style="left: 55%;" onclick="clearForm();return false;">Cancel</a> 

應該工作

7

你的問題是你需要返回布爾。

,拋棄所有...

  • 悄悄地附上您的活動......

    ​​

  • 使用preventDefault()。這是現代化的方式。

    function clearForm(event) { event.preventDefault(); }

+5

+1用於暗示停止使用內聯事件處理程序。 – kapa 2011-04-27 07:28:59

+0

kk謝謝亞歷克斯我會嘗試。 – codeomnitrix 2011-04-27 07:34:09

+0

@bazmegakapa:有時候他們需要 – codeomnitrix 2011-04-27 07:34:37

1

請注意,如果在clearForm(錯誤或錯誤),然後在「返回false」將不會停止錨措施,您的瀏覽器將嘗試鏈接到HREF「取消」 。下面是邏輯:

  1. 用戶點擊錨
  2. 的onClick觸發clearForm()
  3. 有一個在clearForm誤差(),因此使用Javascript崩潰和停止所有代碼執行。
  4. 返回false從未被觸發,因爲Javascript已停止。

如果你是依靠第三方的JavaScript API(我用的是回收銀行通過提供產卵一個彈出代碼),以及第三方API使得,打破了JavaScript的更新,那麼你就會有問題。

以下將在正常條件和錯誤條件下停止鏈接。

<a class="button" href="javascript:;" style="left: 55%;" onclick="clearForm();return false;">Cancel</a> 
-2

請記住,某些瀏覽器擴展可能會干擾鏈接的正常運行。例如,我遇到了某人同時啓用了AdBlock Plus和Ghostery的情況。用'onclick ='返回一個簡單的'a'標籤返回SomeFunction();「'屬性(該函數返回false)導致瀏覽器將點擊視爲頁面轉換並轉到空白頁面,並且加載指示符保存紡紗。禁用這些瀏覽器擴展清除了問題。

包括這個作爲答案,因爲這是我從Google登陸的第一頁。