javascript - 通过选定的选项值设置输入值

标签 javascript jquery html

我想做的是设置 kabelname,它是由选择的选项设置到输入字段中的,方法是像选项字段的顺序一样对名称进行排序。

这应该通过选择或取消选择一个选项而不覆盖整个输入字段来实现。它应该只添加或删除所选选项的值。

如果选择了 kabelart 且 steckertyp 为 1,则应将 steckertyp1 的值与 kabelart 的值一起添加到 kabelname 的输入字段中。

然后,如果选择了 Verwendung,则应将其添加到带有“.”的 kabelname。和值(value)。否则,如果选择 Verwendung 但未选择 Steckertyp,则应在 kabelname 中添加“-”。

Anschlusstyp 也应该发生同样的事情......

如果 kabelart 设置为 "",那么应该清除 kabelname。但是,如果其他选项之一被更改或设置为“”,则只应在其位置上将其删除。

我很抱歉描述不当,但我希望你明白我的意思。如果没有,请随时询问。

谢谢

function changedKabelart(kabelartValue){
  var kaValue = kabelartValue;
  
  if(kaValue != ""){      
    document.getElementById("kabelname").value = kaValue;
  }
  else{
    document.getElementById("kabelname").value = kaValue;     
  }
}

/* Steckertyp 1 */
function changedSteckertyp1(sttyp1Value){
  var st1Value = sttyp1Value;
  
  if(st1Value != ""){
    document.getElementById("kabelname").value += "-" + st1Value;
  }
  else{          
    document.getElementById("kabelname").value += st1Value;
  }          
}

/* Verwendung */
function changedVerwendung(verwendungValue){
  var vwValue = verwendungValue;
  var st1Value = document.getElementById("steckertyp1").value;
  
  
  if(vwValue != "" && st1Value != ""){
    document.getElementById("kabelname").value += "." + vwValue;
  }
  else if(vwValue != "" && st1Value == ""){
    document.getElementById("kabelname").value += "-" + vwValue;
  }
  else{          
    document.getElementById("kabelname").value += vwValue;
  }          
}
      
/* Anschlusstyp 1 */
function changedAnschluss1(anschluss1Value){
  var ansch1Value = anschluss1Value;
  
  if(ansch1Value != ""){
    document.getElementById("kabelname").value += "-" + ansch1Value;
  }
  else{            
    document.getElementById("kabelname").value += ansch1Value;
  }          
}
<p> Kabelart </p>
<select name="kabelart" id="kabelart" required onchange="changedKabelart(this.value);"> 
  <option value="" selected></option>   
  <option value="K" > Kabel</option>   
  <option value="K2" > Kabel 2</option>   
  <option value="K3" > Kabel 3</option>   
</select>

<p> Steckertyp </p>
<select name="steckertyp1" id="steckertyp1" onchange="changedSteckertyp1(this.value);">
  <option value="" selected></option>
  <option value="ST1" >ST1</option>
  <option value="ST2" >ST2</option>
  <option value="ST3" >ST3</option>
</select>

<p> Verwendung </p>
<select name="verwendung" id="verwendung" onchange="changedVerwendung(this.value);" >
  <option value="" selected></option>   
  <option value="VW1" >VW1</option>   
  <option value="VW2" >VW1</option>   
</select>

<p> Anschlusstyp </p>
<select name="anschlusstyp1" id="anschlusstyp1" onchange="changedAnschluss1(this.value);" >
  <option value="" selected></option>  
  <option value="A1" >A1</option>  
  <option value="A2" >A2</option>  
  <option value="A3" >A3</option>  
</select>

<br><br><br>
<input type="text" name="kabelname" id="kabelname" placeholder="Kabelname" readonly />

最佳答案

与其使用不同的函数来更新 kabelname,不如只使用一个。然后一切都会被覆盖。

            <p> Kabelart </p>
        <select name="kabelart" id="kabelart" required onchange="update();"> 
          <option value="" selected></option>   
          <option value="K" > Kabel</option>   
          <option value="K2" > Kabel 2</option>   
          <option value="K3" > Kabel 3</option>   
        </select>

        <p> Steckertyp </p>
        <select name="steckertyp1" id="steckertyp1" onchange="update();">
          <option value="" selected></option>
          <option value="ST1" >ST1</option>
          <option value="ST2" >ST2</option>
          <option value="ST3" >ST3</option>
        </select>

        <p> Verwendung </p>
        <select name="verwendung" id="verwendung" onchange="update();" >
          <option value="" selected></option>   
          <option value="VW1" >VW1</option>   
          <option value="VW2" >VW1</option>   
        </select>

        <p> Anschlusstyp </p>
        <select name="anschlusstyp1" id="anschlusstyp1" onchange="update();" >
          <option value="" selected></option>  
          <option value="A1" >A1</option>  
          <option value="A2" >A2</option>  
          <option value="A3" >A3</option>  
        </select>

        <br><br><br>
        <input type="text" name="kabelname" id="kabelname" placeholder="Kabelname" readonly />


        <script>
        function update() {
            var kabelname ;
            if(document.getElementById("kabelart").value === "") {  
              kabelname = "";
            }
            else {
                kabelname = document.getElementById("kabelart").value;

                if(document.getElementById("steckertyp1").value!== ""){
                    kabelname += "-" + document.getElementById("steckertyp1").value;
                    if(document.getElementById("verwendung").value !== "") {
                        kabelname += "." + document.getElementById("verwendung").value;
                        if(document.getElementById("anschlusstyp1").value!== "") {
                            kabelname += "-" + document.getElementById("anschlusstyp1").value;
                        }
                    }
                    else {
                        if(document.getElementById("anschlusstyp1").value!== "") {
                            kabelname += "." + document.getElementById("anschlusstyp1").value;
                        }    
                    }
                }
                else {
                    if(document.getElementById("verwendung").value !== "") {
                        kabelname += "-" + document.getElementById("verwendung").value;
                        if(document.getElementById("anschlusstyp1").value!== "") {
                            kabelname += "." + document.getElementById("anschlusstyp1").value;
                        }
                    }
                    else {
                        if(document.getElementById("anschlusstyp1").value!== "") {
                            kabelname += "-" + document.getElementById("anschlusstyp1").value;
                        }                            
                    }
                }

            }                
            document.getElementById("kabelname").value = kabelname;                
        }

        </script>

关于javascript - 通过选定的选项值设置输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43523693/

相关文章:

javascript - 如何在javascript中使表格可滚动

javascript - 将 session 注入(inject)模型

javascript - 如何使用 jQuery 选择特定字符后段落内的所有文本

javascript - 触摸屏上焦点突出时 event.latedTarget 为 null

javascript - 位置固定仅水平但允许垂直滚动使用 javascript 的视差效果

php - 将两个条件结果放在一个表中

javascript - Java lambda 是否等同于 JavaScript 闭包?

ajax - IE9 中的 jQuery AJAX 请求不发送 Cookie header

json - 将 JSON 数据传递给 Spring MVC Controller

javascript - 在 orientationchange 事件后调整 div 的大小/位置