2016-04-28 147 views
0

好吧,我得到了兩個按鈕,一個給狗列表添加了一條狗,另一條則清除了整個列表。JavaScript的一些按鈕點擊不刷新頁面?

這兩個工作都很好,只是一件令我困擾的事情是隻有OnSubmit按鈕刷新頁面。

狗列表已加載到OnReady中,並且僅在添加項目時纔會刷新列表。當我清除列表時,我需要手動刷新頁面才能看到更改。

function OnSubmit(event) { 
    addToStorageList(dogs, dog); 
} 

function OnClickClearList() { 
    localStorage.setItem('dogs', JSON.stringify([])); 
}  

function addToStorageList(listName, itemToAdd) { 
    var list = JSON.parse(localStorage.getItem(listName)); 
    if (!Array.isArray(list)) { 
     list = []; 
    } 
    list.push(itemToAdd); 
    localStorage.setItem(listName, JSON.stringify(list)); 
} 

$('#btn1').click(OnSubmit); 

$('#btn2').click(OnClickClearList); 

我感謝任何幫助,謝謝!

+1

聽起來像你需要設置'type =「submit」'在第二個按鈕。如果您可以將HTML添加到問題中,我們可以確定地告訴您。 –

+0

這兩個按鈕都沒有類型 – SJ19

+0

按鈕「

回答

2

在我對他們的看法沒有人應該刷新,刷新你應該使用

「location.reload();」

在你的函數

的原因其中之一刷新結束要麼在代碼中我看不到(你沒有發佈),或者一個被稱爲OnSubmit,這是干擾表單提交按鈕或其他東西

+0

嗯好吧,將所有按鈕重定向到OnSubmit並使用ID分隔它們會更好嗎? – SJ19

+0

這取決於你,但對我來說,刷新的「OnSubmit」是「未定義的行爲」,所以我會使用「location.reload()」,甚至可能重命名該函數以防萬一,因爲這可能是瀏覽器特定的行爲 – user3252497

+0

好的,謝謝我現在將使用reload()作爲不適用於表單的按鈕。你怎麼去處理多個表單按鈕? (如果我想要更多的表單) – SJ19