亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過更改 html 表單中的選擇選項來更改變量?

如何通過更改 html 表單中的選擇選項來更改變量?

富國滬深 2022-05-26 14:41:04
每當用戶在我的 html 表單的選擇列表中更改他的答案時,我都會嘗試更改我的變量“年份”。我想將“年份”更改為當前選擇的任何年份,因此如果用戶選擇“2022”,我希望我的變量年份等于 2022。我嘗試使用“事件”作為函數 setYear() 的參數,但這并不成功。任何幫助將不勝感激。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>
查看完整描述

3 回答

?
慕哥9229398

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>


查看完整回答
反對 回復 2022-05-26
?
12345678_0001

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>


查看完整回答
反對 回復 2022-05-26
?
智慧大石

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>


查看完整回答
反對 回復 2022-05-26
  • 3 回答
  • 0 關注
  • 240 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號