2問題,我有一個列出3個位置的表單。提交表單後,我希望變量「event_location」等於在下拉菜單中選擇的位置。我唯一不明白的是,如果用戶根本沒有選擇一個位置,那麼用戶只是使用默認位置(顯示的第一個位置)。我不認爲我的JavaScript代碼解釋了這一點。下面我已經包含了html和javascript。我感謝任何幫助!Javascript:在下拉菜單中設置默認變量(在OP中解決)
<select name="location" id="event_location" onchange='getSelectedValue();'>
<option value="sandiego">San Diego</option>
<option value="losangeles">Los Angeles</option>
<option value="sanfrancisco">San Francisco</option>
</select>
function getSelectedValue() {
var event_location = document.getElementById('event_location').value;
}
函數getSelectedValue()僅在'onchange'事件觸發時發生。因此,如果他們對聖地亞哥的第一選擇感到滿意,他們將不會觸發onchange事件。我應該在函數之外聲明event_location ='sandiego'嗎?
另一個棘手的部分是基於他們選擇哪個event_location(聖迭戈,洛杉磯或者舊金山),我的javascript改變了它們被導向到的URL。如何更改網址以說明他們挑選哪個event_location。例如,如果他們選擇聖地亞哥,一旦他們點擊搜索按鈕,它會將他們帶到:http://myurl.com/sandiego。這裏是HTML和JavaScript我至今對我的第二個功能:
<input type='button' value='Search' onclick='eventViewer();' />
function eventViewer() {
function getSelectedValue() {
var event_location = document.getElementById('event_location').value;
}
if (event_location = 'losangeles') {
window.open('http://...')
}
else if (event_location = 'sanfrancisco') {
window.open('http://...')
}
else {
window.open('http://...') //link to san diego
}
}
而不是創建2個獨立的功能,你可以使用標準
var event_location = document.getElementById('event_location').value;
這隻會抓住從下拉框中的值抓取下拉菜單中的任何值。因此,您不必擔心具有兩種不同功能的變量範圍,您可以在1次'OnClick'事件時聲明所有變量。
爲什麼不添加一個虛擬選項None作爲第一個選項,所以當用戶不選擇任何東西時,(s)他不會去任何地方? – 2011-06-16 21:55:32
所以像一個空白的領域?明智的可用性,你認爲這是最好的選擇? – yoshyosh 2011-06-16 21:58:52
你爲什麼覺得你需要一個嵌套函數? – Dan 2011-06-16 22:00:11