为了账号安全,请及时绑定邮箱和手机立即绑定

如何更改选择列表js中的选项

如何更改选择列表js中的选项

Smart猫小萌 2022-01-13 16:58:38
我有一个选择列表的更改事件,我必须在用户选择一个选项后通过提示窗口询问用户,他要选择的另一个选项是什么,然后在提示窗口中介绍该值,选择的选项随新的而改变。<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <title>Examen modulo1</title>    <script>        function cambiaSelect() {            var provincias = document.getElementById("provincias");            var posicion = provincias.selectedIndex;            var select = provincias.options[posicion].value;            var pantalla;            // when prompt value is 0            if (provincias.options[posicion].value == 0) {                alert("No has seleccionado ninguna provincia");            } else {                // when index is selected                if (provincias.options[posicion].selected == true) {                    pantalla = prompt("Has seleccionado la provincia: " + provincias.options[posicion].text + "\n Introduce otra provincia aqui:");                }                // when prompt do not receive a value                if (pantalla == "") {                    alert("El valor que has introducido no existe!\Intentalo de nuevo!");                }                //prompt equals the selected value                if (select == pantalla && provincias.options[posicion].selected == true) {                    alert("Esa provincia ya esta seleccionada");                }            }        }//cambia    </script></head><body>4.Formulario de tipo select. Selecciona provincias:<br><form method="GET">    <br>    <select id="provincias">        <option value="0">0.Selecciona...</option>        <option value="1">1.Albacete</option>        <option value="2">2.Murcia</option>        <option value="3">3.Madrid</option>    </select><br>    <br>    <input type="button" value="Cambiar" onclick="cambiaSelect()"><br>    <br>    <br></form></body></html>
查看完整描述

1 回答

?
达令说

TA贡献1821条经验 获得超6个赞

您可以通过单击“运行代码片段”来运行下面的代码。如果用户输入 3,选择的选项将变为“3.Madrid”。西班牙语让我很困惑,所以我把它换成了英语,但编程逻辑是一样的。


<form method="GET">

  <br>

  <select id="provincias">

    <option value="0">0.Selecciona...</option>

    <option value="1">1.Albacete</option>

    <option value="2">2.Murcia</option>

    <option value="3">3.Madrid</option>

  </select>

  <br>

  <input type="button" value="Cambiar" onclick="cambiaSelect()">


</form>


<script>

  function cambiaSelect() {

    var provinces = document.getElementById("provincias");

    var position = provinces.selectedIndex;

    var select = provinces.options[position].value;

    var pantalla;


    if (provinces.options[position].value == 0) {

      alert("You have not selected any province");

    } else {

      if (provinces.options[position].selected == true) {

        pantalla = prompt("You have selected the province: " + provinces.options[position].text + "\n Choose another province here");

        while (true) {

          if (pantalla) { // this ensures that if the user clicks cancel on the prompt, we don't do any more logic

            if (pantalla === "") {

              alert("The value you entered does not exist. Try again!");

            } else if (select === pantalla) {

              alert("That province is already selected");

            } else if (pantalla >= 1 && pantalla <= 3) {

              document.getElementById('provincias').selectedIndex = pantalla;

              break;

            }

            pantalla = prompt("Choose another province here");

          } else { // if the cancel button on prompt was pressed, get out of loop

            break;

          }

        }

      }

    }

  }

</script>


唯一的问题是如果用户输入了一个介于 1 和 3 之间的不是整数的数字,比如 2.5。2.5 不是一个合适的索引,对吧?因此,如果您想处理这种情况,可以添加以下修改:


else if (Number.isInteger(Number(pantalla)) && pantalla >= 1 && pantalla <= 3). 如果您有更多问题,请告诉我。


查看完整回答
反对 回复 2022-01-13
  • 1 回答
  • 0 关注
  • 217 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号