将选项选项发布到数据库当"其他"字段被选中

时间:2018-06-17 14:19:07

标签: javascript html html5

我使用下面的代码显示输入字段"其他"选项已被选中。

当"其他"被选中。

但是,除了"其他"之外的任何其他选项,我无法发布到数据库。被选中。

问题是文本输入否定了选择选项。 知道如何去做吗?

有一个问题试图解决问题,但我没有足够的声誉发表评论Stackoverflow.com/questions/9634783/how-to-activate-a-textbox-if-i-select-an-other-option-in-drop-down-box

<html> 
<head>  
<script type="text/javascript">
function CheckColors(val){
 var element=document.getElementById('color');
 if(val=='pick a color'||val=='others')
   element.style.display='block';
 else  
   element.style.display='none';
}

</script> 
</head>
<body>
  <select name="color" onchange='CheckColors(this.value);'> 
    <option>pick a color</option>  
    <option value="red">RED</option>
    <option value="blue">BLUE</option>
    <option value="others">others</option>
  </select>
<input type="text" name="color" id="color" style='display:none;'/>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

问题是,您有多个具有相同名称的表单元素。这可能在某些情况下有效,但通常是一种不好的做法。以不同的方式命名它们,让处理输入的代码处理数据。

如果你真的需要一个名为'color'的输入来保存当前颜色,那么这是一个应该有效的解决方案:

function checkColors(val) {
  var element = document.getElementById('color');

  if (val == 'pick a color' || val == 'others') {
    element.style.display = 'block';
  } else {
    element.value = val; //make sure element always has the right value;
    element.style.display = 'none';
  }
}
<html>

<head>
</head>

<body>
  <select name="colorSelect" onchange='checkColors(this.value);'>
    <option>pick a color</option>
    <option value="red">RED</option>
    <option value="blue">BLUE</option>
    <option value="others">others</option>
  </select>
  <input type="text" name="color" id="color" style='display:none;' />
</body>

</html>