3 回答
TA貢獻1877條經驗 獲得超6個贊
你的代碼:
var year;
<script type="text/javascript">
function setYear(a) {
year = a;
}
</script>
<form>
<tr>
<td>Year: </td>
<td><select name="Year" onchange="setYear(event)">
<option value="2020">2020</option>
<option value="2021">2021</option>
<option value="2022">2022</option>
</select></td>
</tr>
</form>
您在標簽var外聲明變量<script>。因為,var是在<script>標簽之外聲明的,所以它對 javaScript 函數不可見。
此外,您正在var設置事件參數。此代碼可能有效。
<script type="text/javascript">
var year;
function setYear(a) {
year = a;
}
</script>
<form>
<tr>
<td>Year: </td>
<td><select name="Year" onchange="setYear(this.value)">
<option value="2020">2020</option>
<option value="2021">2021</option>
<option value="2022">2022</option>
</select></td>
</tr>
</form>
TA貢獻1802條經驗 獲得超5個贊
您可以使用this來引用 select DOM 元素:
<script type="text/javascript">
let year
function setYear(a) {
year = a
}
</script>
<select name="Year" onchange="setYear(this.value)">
<option value="2020">2020</option>
<option value="2021">2021</option>
<option value="2022">2022</option>
</select>
然而,像這樣的內聯 JavaScript 有點過時了。對于更現代的方法,使用document.querySelector獲取 DOM 節點,并注冊一個事件偵聽器,該偵聽器在它更改時觸發。這樣,您不必混合 HTML 和 JS:
<script type="text/javascript">
let year
const yearSelect = document.querySelector('#yearSelect')
yearSelect.addEventListener('change', e => {
year = e.target.value
})
</script>
<select id="yearSelect" name="Year">
<option value="2020">2020</option>
<option value="2021">2021</option>
<option value="2022">2022</option>
</select>
TA貢獻1946條經驗 獲得超3個贊
首先,您不應該使用<td>并且<tr>沒有<table>標簽。標簽定義表格行
。標簽定義了表格中的標準單元格<tr>。<td>
然后,在 onchange 事件中,您應該this作為參數傳遞。它將引用 HTML 的 select DOM 元素。在您的功能中,您現在可以知道您選擇的年份是哪一年。
select.options[select.selectedIndex].value;
選擇:您的 DOM 元素。
options:你選擇的所有選項作為一個數組
select.selectedIndex:用戶選擇的索引(對應一個數字)
value:選擇的選項的值。
<!DOCTYPE html>
<html dir="ltr">
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>
<form>
<label>Year:</label>
<select name="Year" onchange="setYear(this)">
<option value="2020">2020</option>
<option value="2021">2021</option>
<option value="2022">2022</option>
</select>
</form>
</body>
<script type="text/javascript">
var year;
function setYear(select) {
year = select.options[select.selectedIndex].value;
}
</script>
</html>
添加回答
舉報
