2012-04-28 36 views
0

達到混亂Jquery的/ HTML形式

我創建一個輸入耦合元件和按鈕來搜索的點。 從以前使用HTML,我帶領相信,我應該創建幷包含我的元素和

但數據是不是在任何地方除了給JavaScript發送到顯示在谷歌地圖中的正確位置。

我已經成功地迷惑自己;我是否需要一個元素來包含和s? 問題是,當我按下它是否是測試或搜索按鈕的頁面重新加載。

我不想重新加載頁面。對我來說,避免發生這種情況的唯一方法就是去除元素,這不太合適,如果可能的話,我很關心使用良好的做法。

這是我的代碼:

 <form id="maps_form"> 
     <fieldset id="search_maps"> 
      <label for="marker">Search Shop: </label> 
    <input name="searchName" id="searchName" type="text" placeholder="Enter Shop Name"> 

     </fieldset> 
     <fieldset id="map_buttons"> 
      <button id="test"> test</button> 
       <button id="searchSomething">Search</button> 
      </fieldset> 
    </form> 

我覺得,雖然我學習這個JavaScript,浸入jQuery和學習xml的,我差點忘了HTML的基礎知識:s是這通常失去聯繫而學習新語言?

+0

讀這我也糊塗了,你need.can究竟是什麼,你是在一個或兩個線條更加清晰了。 – coder 2012-04-28 09:25:07

+0

我真的不明白你的問題,對不起。不提交數據時不需要表單。您可以將事件處理程序綁定到該按鈕,並通過JS/jQuery修改DOM。這有幫助嗎? – Smamatti 2012-04-28 09:25:37

+0

這聽起來像技術上我不需要一個窗體,但只是輸入的元素,是沒有窗體元素可以使用嗎?我想這是我簡化的問題。一個漫長的一天,10,30am仍然沒有睡覺,但(因此使意義不大) – Renai 2012-04-28 09:31:13

回答

2

頁面會重新加載,如果你對你的點擊/提交處理程序不返回false。因此,頁面會刷新,如果:

  1. 如果你的Javascript監聽器未正確註冊
  2. 你的JavaScript處理函數返回true
  3. 你的JavaScript處理程序導致錯誤(檢查是否有錯誤,開發者控制檯)
+0

是很好的做法,只是不使用

元素,仍然使用元素和爲J/s的溝通? – Renai 2012-04-28 09:31:59

+0

@Renai我不認爲規範中有任何東西可以防止在沒有'form'的情況下使用它們。如果它不是一個邏輯上的表單(輸入+按鈕),我將跳過表單元素。 – Lycha 2012-04-28 10:31:49

+0

如果您只處理按鈕點擊或沒有窗體,並且用戶在文本框內按下回車鍵,您的功能將不會被調用。處理表單提交,而您同時獲得按鈕推送和輸入框中的輸入。 – robrich 2012-04-28 17:07:13

0
$("#maps_form").submit(function() { 
    // do stuff 

    return false; // Don't submit the form 
}); 
+0

不知道這是什麼做錯了,但它仍然重新加載頁面:s – Renai 2012-04-28 09:36:17

0

千萬別這麼做!返回false後如果動作太多,不會阻止轉到下一頁。

$("#maps_form").submit(function() { 

    // do stuff 

    return false; // Don't submit the form 
}); 

這是正確的形式:

$("#maps_form").submit(function (event) { 
    event.preventDefault(); 

    ... 
});