簡體   English   中英

停止表單發送並執行功能

[英]Stop form from sending and execute a function

這是我的表格:

<form id="search_form" method="get" action="" name="search_f">
  <input id="search_field" maxlength="100" name="query" type="text" value="" placeholder="cerca nel negozio">
  <input id="search_button" type="submit" value="" onClick="submit_f()">
</form>

這是“ submit_f()”:

function submit_f(){
  var v = document.search_f.query.value;
  var v_arr = v.split("?");
  alert(v_arr.join('\n'));
  var v_arr = v_arr[0].split("/");
  alert(v_arr.join('\n'));
  if((v_arr[0] == "http:" || v_arr[0] == "https:") && v_arr[2] == "store.steampowered.com")
    window.location.href = "/" + v_arr[3] + "/" + v_arr[4];
  else
    window.location.href = "/search/?query=" + v;
  return false;
}

我想做的是根據用戶輸入的內容將用戶重定向到其他頁面:
-如果他輸入單詞,他將被重定向到“ / search /?query = words” -如果他輸入網址( http://store.steampowered.com/app/202170/?asp=123 ),他將被重定向到“ / app / 202170” (在這種情況下)。

但是我的代碼不起作用,有幫助嗎?

您不會從事件處理函數中返回任何信息:

onClick="submit_f()"

應該

onClick="return submit_f()"

您應該給表格一個

onsubmit="return false"

以避免默認的提交行為。 同樣,您的按鈕可以是type = button而不是type = submit,但這並不總是足夠的(某些瀏覽器仍會提交),確定的方法是onsubmit。

從您的html中刪除onclick

document.getElementById('search_button').onclick = function(){
    var v = document.search_f.query.value;
    var v_arr = v.split("?");
    alert(v_arr.join('\n'));
    var v_arr = v_arr[0].split("/");
    alert(v_arr.join('\n'));
    if((v_arr[0] == "http:" || v_arr[0] == "https:") && v_arr[2] == "store.steampowered.com")
       window.location.href = "/" + v_arr[3] + "/" + v_arr[4];
    else
       window.location.href = "/search/?query=" + v;
    return false;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM