2013-07-03 194 views
1

更新:阿卜杜的答案工作,但只有當我在index.html文件嵌入腳本(而不是包括它在一個鏈接app.js文件中像我)...如何防止表單提交jquery移動頁面刷新?

我創建一些簡單的移動應用程序在jQuery的移動和angularjs(不在一起),看看我想建立在...

我在jQuery的移動問題。當您提交表單,而不是簡單地動態更新列表,它刷新並清除網頁:

<div id="home" data-role="page"> 

<div data-role="content"> 
    <form id="form1"> 
     <input id="list-text" type="text" placeholder="enter text here..."> 
     <button id="button1" onclick="addToList()" >Add</button> 
    </form> 

    <ul id="the-list" data-role="listview"></ul> 
</div> 

function addToList() { 
    var newText = $('#list-text').val(); 
    $('#the-list').append('<li>' + newText + '</li>'); 
    // will be updating localStorage here 

    $('#list-text').val(' '); 

} 

我試圖研究這個,仍然不明白爲什麼.. ..也許我需要更多的形式和jQuery的理解。

回答

2

您可以移動的按鈕表單或停止形式從提交的全部,例如

$("#form1").on('submit',function(){return false;}); 

這將停止刷新。

另外,我會推薦使用jQuery來處理點擊事件,而不是onclick。例如

$("#button1").on('vclick',function(){}); 

如果你使用點擊移動設備上的處理程序將推遲點擊200毫秒,這是很多,所以使用V單擊,您可以閱讀有關V單擊here

+1

jquery mobile有點令人困惑,你還應該熟悉jq mobile中的頁面轉換,標籤之前的

2

這個屬性添加:

data-ajax="false" 

到表單中。它會阻止jQuery Mobile劫持表單處理。

又看了我如何形式應與jQuery Mobile的處理對方回答:https://stackoverflow.com/a/15205612/1848600

並以官方文檔的鏈接:http://jquerymobile.com/demos/1.2.0/docs/forms/forms-sample.html

+0

它仍然刷新頁面。它從輸入中動態顯示文本,但是你會看到一個快速的「?」附加到瀏覽器中的URL上,並刷新頁面。 –

+0

也嘗試了在你ref'd答案的方法,仍然刷新。奇怪的。也許這是我使用角度的標誌:) –

1

嘗試 event.preventDefault() ;

而不是返回false;

+0

這對我有效,但我必須意識到我把它放在哪裏。該聲明通過放置在.post()後面工作。行,不在其中。 – Daydah