更改Option时未检测到JS,变量保持未定义状态

时间:2019-12-23 12:45:58

标签: javascript ajax

我正在尝试根据用户更改生成自动电子邮件地址。
关键是要打印域名,其余的都可以正常工作。

这是我的问题,我正在获取元素ID,如果Var x的元素ID根据选择采用其他var的值,则X保持未定义状态。

我认为选择其他选项时无法检测到。

任何帮助将不胜感激。

<select name="select"   id="selecto">

                        <option value="">--Please choose an option--</option>
                            <option value="value1" id="1">SEE</option>
                            <option value="value2" id = "2">Guillebert</option>
                            <option value="value3" id = "3">Saelen</option>
                            <option value="value4" id ="4">SEE Produktion</option>
                            <option value="value5" id ="5">TS-Industrie</option>
                            <option value="value6" id="6">Schliesing</option>
                        </select>

                        <script type="text/javascript">

    var a = "@groupesee.com";
    var b = "@guillebert.fr";
    var c = "@saelen.fr"; 
    var d = "@see-produktion.net;"
    var e = "@ts-industrie.de";
    var g = "@schliesing.net";
    var x;

if(document.getElementById('selecto').value == "value1") {
     x = a;
     alert("Success");
}
</script>

由于某种原因,即使我从表单中选择value1,我也不明白为什么var x保持为空。

<script>
    $("#field1, #field2").keyup(function(){
update();
});

function update() {
  $("#result").val($('#field1').val().substr(0,1).toLowerCase() + $('#field2').val().toLowerCase()+x);
}
    </script>

结果

enter image description here

2 个答案:

答案 0 :(得分:0)

您的代码仅在加载时运行。它只会检查一次选择元素 的值(在页面加载和执行script元素时)。

如果您希望每次更改select元素时都运行它,那么您需要这样说。

  1. 将您的代码放入function
  2. Find the select element in the DOM
  3. Listen,将值设为change,然后调用函数

答案 1 :(得分:0)

这里是修复,使用Update函数中的。 :) Tyvm @昆汀

    function update() {
      var a = "@groupesee.com";
    var b = "@guillebert.fr";
    var c = "@saelen.fr"; 
    var d = "@see-produktion.net;"
    var e = "@ts-industrie.de";
    var g = "@schliesing.net";
    var x;

     var elt = document.getElementById(selecto);
     if(document.getElementById('selecto').value == "value1") {
     x = a;

   } if(document.getElementById('selecto').value == "value2") {
     x = b;
}
    if(document.getElementById('selecto').value == "value3") {
     x = c;
}
 if(document.getElementById('selecto').value == "value4") {
     x = c;
}
 if(document.getElementById('selecto').value == "value5") {
     x = c;
}
 if(document.getElementById('selecto').value == "value6") {
     x = c;
}

  $("#result").val($('#field1').val().substr(0,1).toLowerCase() + $('#field2').val().toLowerCase()+x);
}