下拉选择菜单,如何从显示的可选/其他文本框中检索值

时间:2018-05-05 12:23:47

标签: javascript php html

<script type="text/javascript">
function showfield(name){
if(name=='Other')document.getElementById('div1').innerHTML='Other: <input type="text" name="other" />';
else document.getElementById('div1').innerHTML='';
}
</script>

<select name="travel_arriveVia" id="travel_arriveVia" onchange="showfield(this.options[this.selectedIndex].value)">
<option selected="selected">Please select ...</option>
<option value="Plane">Plane</option>
<option value="Train">Train</option>
<option value="Own Vehicle">Own Vehicle</option>
<option value="Other">Other</option>
</select>
<div id="div1"></div>

这是我正在使用的代码,我不确定DOM操作是否会检索该值?无论我尝试什么,&#34;其他&#34;是在提交时插入数据库的值,而不是在选择&#34;其他&#34;后出现的文本框中输入的可选文本。哪个是需要检索的。

1 个答案:

答案 0 :(得分:0)

您可以使用document.querySelector('input[name="other"]')获取名称为other的文本框的值。由于此元素不能保证在那里,您可以使用if条件来防止错误。为了说明querySelector,我使用了一个按钮,这样当您在文本框中键入值并单击submit按钮时,它将控制记录输入的值。您可以根据自己的情况使用它。

&#13;
&#13;
function showfield(name){
  if(name=='Other')document.getElementById('div1').innerHTML='Other: <input type="text" name="other" />';
  else document.getElementById('div1').innerHTML='';
}

function btnClick(){
 var otherElem = document.querySelector('input[name="other"]');
 if(otherElem){
   console.log(otherElem.value);
 }
}
&#13;
<select name="travel_arriveVia" id="travel_arriveVia" onchange="showfield(this.options[this.selectedIndex].value)">
<option selected="selected">Please select ...</option>
<option value="Plane">Plane</option>
<option value="Train">Train</option>
<option value="Own Vehicle">Own Vehicle</option>
<option value="Other">Other</option>
</select>
<div id="div1"></div>

<button onclick='btnClick()'>Submit</button>
&#13;
&#13;
&#13;