2012-07-12 191 views
0

我正在嘗試構建一個小搜索腳本,但似乎無法阻止當您點擊提交時重新加載頁面。我的代碼可能有些問題:這怎麼能阻止表單提交/重新加載頁面?

function searchThat(e) { 
    if (!e) e = window.event; 
    e.preventDefault(); 

    if (searchFor.indexOf(searchIn) != -1) { 
     console.log('we found it'); 
    } 
} 

感謝一堆!

我與

if (searchFor && searchIn && searchSubmit) { 
    addEvent(searchSubmit, 'submit', searchThat) 
    } 

,並調用它:

function addEvent(elem, evtType, func) { 
    if (elem.addEventListener) { 
     elem.addEventListener(evtType, func, false); 
    } else if (elem.attachEvent) { 
     elem.attachEvent("on" + evtType, func); 
    } else { 
     elem["on" + evtType] = func; 
    } 
} 

和HTML:

<div class="container"> 
    <form> 
     <p>Search for:</p> 
     <p class="mrm"> 
      <input type="text" id="searchFor" name="searchFor"> 
     </p> 
     <p>In:</p> 
     <textarea class="mrm" type="text" id="searchIn" name="searchIn"></textarea> 
     <p> 
      <input type="submit" class="clicker nmb" id="searchSubmit" name="searchSubmit"> 
     </p> 
    </form> 
</div> 
+0

它關於如何「提交」的東西。郵政編碼。 – Shenaniganz 2012-07-12 23:02:27

+0

我假設'searchSubmit'是'

'? – 2012-07-12 23:03:24

+0

我們需要查看HTML表單,特別是您用來調用JavaScript的代碼。 – ernie 2012-07-12 23:03:36

回答

1

<Input type="submit"/>總會觸發回傳並重新加載頁面。 如果它與任何你想實現改變你輸入到<Input type="button"/>

而且

addEvent(searchSubmit, 'click', searchThat) 
{} 

有可能是你的代碼丟失但是從您發佈什麼,你可以讓更多的邏輯你生活更容易,而不是做所有這些複雜的JScripting,你可以做: <Input type="button" value="Click Me" onclick="searchThat()"/>

+0

好吧,這是合法的 – dezman 2012-07-12 23:13:03