[英]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.