我正在嘗試製作一個表單,它將採用給定的文本並將您引導至選定的搜索引擎並將文本作爲查詢。我有問題讓JavaScript(重新)直接。JavaScript表單到搜索引擎重定向
有趣的是,如果你使提交輸入一個按鈕,並做onClick =「searchForm」,然後點擊它,它將工作。但是,那麼你不能鍵入,只需按回車搜索..這對我來說是必要的。另外,如果有更好的但完全不同的方式來做到這一點,我很樂意聽到它。
謝謝。
編輯:徹底改變了代碼,以匹配什麼meouw說,這比我最初有更清晰,所以謝謝。我知道HTML被搞砸了,這主要是因爲我正在改變一切,試圖讓JavaScript起作用。所以即使現在我已經清理了一切,它仍然有同樣的問題。
我知道我缺少的東西,因爲如果你把警報('貓');在更改JavaScript中的URL後,您可以看到瀏覽器已被重定向到執行搜索,但是一旦您在警報上單擊確定,就會收回。你甚至可以回到瀏覽器的歷史記錄去搜索頁面。
編輯再次:好的,謝謝你。返回虛假是我一直需要的。謝謝您的幫助。
最終代碼:
<script type="text/javascript">
function doSearch(f) {
var searchTerm = f.searchText.value;
if(!searchTerm) {
//tell user to enter a search string
// cancel the request by returning false
return false;
}
var sel = f.whichEngine;
var selectedEngine = sel[sel.selectedIndex].value;
var engineUrl;
switch(selectedEngine) {
case 'google_web':
engineUrl = 'http://www.google.com/search?q=';
break;
case 'bing_web':
engineUrl = 'http://www.bing.com/search?q=';
break;
case 'yahoo_web':
engineUrl = 'http://search.yahoo.com/search?p=';
break;
case 'google_images':
engineUrl = 'http://www.images.google.com/images?q=';
break;
case 'bing_images':
engineUrl = 'http://www.bing.com/images/search?q=';
break;
case 'yahoo_images':
engineUrl = 'http://images.search.yahoo.com/search/images?p=';
break;
}
engineUrl += searchTerm;
window.location.assign(engineUrl);
return false;
}
</script>
<form onsubmit="return doSearch(this)">
<fieldset>
<legend>Search</legend>
<ul>
<li>
<input type="text" name="searchText" id="searchText" size="41" maxlength="2048" />
</li>
<li>
<select name="whichEngine" id="whichEngine">
<optgroup label="Web">
<option id="GoogleWeb" value="google_web" checked="checked">Google Web</option>
<option id="BingWeb" value="bing_web">Bing Web</option>
<option id="YahooWeb" value="yahoo_web">Yahoo! Web</option>
</optgroup>
<optgroup label="Images">
<option id="GoogleImages" value="google_images">Google Images</option>
<option id="BingImages" value="bing_images">Bing Images</option>
<option id="YahooImages" value="yahoo_images">Yahoo! Images</option>
</optgroup>
</select>
<input type="submit" value="Search">
</li>
</ul>
</fieldset>
</form>
你或許應該通過運行一個驗證啓動在您的標記中 - '
在doSearch()的末尾返回false以便表單從不提交 – meouw 2010-02-11 08:39:12
我修改了我的答案,對不起 – meouw 2010-02-11 08:42:39