停止表单发送和执行功能

时间:2013-12-22 10:20:50

标签: javascript

这是我的表格:

<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”

但我的代码没有用,有什么帮助吗?

3 个答案:

答案 0 :(得分:3)

您没有从事件处理函数返回任何内容:

onClick="submit_f()"

应该是

onClick="return submit_f()"

答案 1 :(得分:1)

你应该给你的表格

onsubmit="return false"

避免默认的提交行为。此外,您的按钮可以是type = button而不是type = submit,但这并不总是足够(某些浏览器仍然会提交它),肯定的方法是onsubmit。

答案 2 :(得分:1)

从您的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;
}