单击第一个选项js

时间:2019-01-29 07:29:34

标签: javascript html

请告诉我,其中有一个代码,当您单击选项选择时,将添加一个带有选项值的div元素。 但是有一个问题,那就是您不能立即单击第一个选项,您必须先单击第二个,而只能单击第一个。如何解决这个问题? 预先谢谢你。

var p = document.getElementById("inputi");
var length = 1;

function add_input_from_select(select) {
  var new_input = document.createElement("input");
  new_input.name = "my_input";
  new_input.value = select.value;
  var div = document.createElement('div');
  div.innerHTML = '<br>div элемент №' + length + '<br>';
  div.appendChild(new_input);
  p.appendChild(div);
  length++;
}

function add_input_old() {
  add_input_from_select(document.getElementById("selector"));
}
<select id="selector" onchange="add_input_from_select(this)">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
</select>
<br>
<form>
  <div id="inputi"><input name="my_input"></div>
</form>

2 个答案:

答案 0 :(得分:2)

在html下拉列表中,您无法选择已选择的值,因此必须在下拉列表中添加另一个选项,即“请选择”,然后您可以选择任何选项。那是正确的解决方案

请参阅工作示例:-

var p = document.getElementById("inputi");
var length = 1;

function add_input_from_select(select) {
  var new_input = document.createElement("input");
  new_input.name = "my_input";
  new_input.value = select.value;
  if(!new_input.value) return false;
  var div = document.createElement('div');
  div.innerHTML = '<br>div элемент №' + length + '<br>';
  div.appendChild(new_input);
  p.appendChild(div);
  length++;
}

function add_input_old() {
  add_input_from_select(document.getElementById("selector"));
}
<select id="selector" onchange="add_input_from_select(this)">
  <option value="">Please Select</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
</select>
<br>
<form>
  <div id="inputi"><input name="my_input"></div>
</form>

答案 1 :(得分:1)

发生这种情况是因为您使用onchange事件完成了此操作,因此已经选择了第一个选项,这就是为什么它第一次不添加div的原因,因此,只需在html上再添加一个选项就可以了

<select id="selector" onchange="add_input_from_select(this)">
  <option value="">select Option</option> 
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
</select>

并将条件放在javascript之类的

if(document.getElementById("selector").value != ""){
    //add your div here
} 

此条件必须适用,因为当您选择第一个选项时,它并未像选择选项一样被添加。