3 回答

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
你的代碼:
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>
您在標(biāo)簽var外聲明變量<script>。因?yàn)?,var是在<script>標(biāo)簽之外聲明的,所以它對(duì) javaScript 函數(shù)不可見。
此外,您正在var設(shè)置事件參數(shù)。此代碼可能有效。
<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貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以使用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>
然而,像這樣的內(nèi)聯(lián) JavaScript 有點(diǎn)過時(shí)了。對(duì)于更現(xiàn)代的方法,使用document.querySelector獲取 DOM 節(jié)點(diǎn),并注冊(cè)一個(gè)事件偵聽器,該偵聽器在它更改時(shí)觸發(fā)。這樣,您不必混合 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貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
首先,您不應(yīng)該使用<td>并且<tr>沒有<table>標(biāo)簽。標(biāo)簽定義表格行
。標(biāo)簽定義了表格中的標(biāo)準(zhǔn)單元格<tr>。<td>
然后,在 onchange 事件中,您應(yīng)該this作為參數(shù)傳遞。它將引用 HTML 的 select DOM 元素。在您的功能中,您現(xiàn)在可以知道您選擇的年份是哪一年。
select.options[select.selectedIndex].value;
選擇:您的 DOM 元素。
options:你選擇的所有選項(xiàng)作為一個(gè)數(shù)組
select.selectedIndex:用戶選擇的索引(對(duì)應(yīng)一個(gè)數(shù)字)
value:選擇的選項(xiàng)的值。
<!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>
添加回答
舉報(bào)