空白选项会自动附加到选择框中

时间:2017-08-19 16:01:13

标签: javascript jquery

当我们单击“提交”按钮时,我在选择框选项中附加文本框值,它正常工作但是当这个值附加在选择框中时,它会显示另一个空白选项,我已经检查了inspect元素,为什么会发生这种情况,我们应该为此做些什么。到目前为止我还没有找到这个理由。

当我们单击“提交”按钮时,我在选择框选项中附加文本框值,它正常工作但是当这个值附加在选择框中时,它会显示另一个空白选项,我已经检查了inspect元素,为什么会发生这种情况,我们应该为此做些什么。到目前为止我还没有找到这个理由。



$(function(){
    var x=[];
    
    $("#itemDone").click(function(){
        var y=$("#itemType").val();
        var z=$("#itemName").val();
        x.push(z);
    
        for(i=1; i<x.length; i++){
            $("#itemType").append('<option value="x[i]">'+x[i]+'<option>');
            $("#itemplace1 ul").append('<li>'+x[i]+'</li>');
        }
    });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    
    <div class="row">
    
    
    <div class="col-md-3" style="background: #efefef;; height: 100vh;">
    <br />
    <div id="itemplace1">
    <ul></ul>
    </div>
    
    
    </div>
    
    <div class="col-md-9" style="background: rgba(255, 165, 0, 0.25); height: 100vh;">
    <br />
    <input type="text" id="itemName" />
    <select id="itemType">
    
    </select>
    <br /><br />
    <button id="itemDone">Submit</button>
    </div>
    
    </div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

以下是您的代码修复:

$(function(){
    var x=[];
    
    $("#itemDone").click(function(){
        var y=$("#itemType").val();
        var z=$("#itemName").val();
        x.push(z);
        
        $("#itemType").children().remove();
        $("#itemplace1 ul").children().remove();
        
        for(i=0; i<x.length; i++) {
            $("#itemType").append('<option value="x[i]">'+x[i]+'</option>');
            $("#itemplace1 ul").append('<li>'+x[i]+'</li>');
        }
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<div class="row">
    <div class="col-md-3" style="background: #efefef;; height: 100vh;">
      <br />
      <div id="itemplace1">
        <ul></ul>
      </div>  
    </div>

    <div class="col-md-9" style="background: rgba(255, 165, 0, 0.25); height: 100vh;">
        <br />
        <input type="text" id="itemName" />
        <select id="itemType">

        </select>
        <br />
        <br />
        <button id="itemDone">Submit</button>
      </div>    
</div>

  1. 清理一些html代码(<br />元素应自行关闭)。
  2. 每次点击时清除#itemType#itemplace1 ul元素。
  3. <option>元素应使用</option>而不是其他<option>代码关闭。
  4. for循环应从0开始,而不是1

答案 1 :(得分:0)

我认为关闭时错误的选项标签,即不是封闭选项而是新开放选项,会导致浏览器错误地渲染选择。

请尝试使用corret html标记并查看它是否已解决。