我使用下面的代码在选择“其他”选项时显示输入字段。
当选择“其他”时,它会完美地工作。
但是,当选择“其他”以外的任何其他选项时,我无法发布到数据库。
问题是文本输入否定了选择选项。 知道如何解决这个问题吗?
有一个问题试图解决问题,但我没有足够的声誉来发表评论 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>
最佳答案
问题是,您有多个同名的表单元素。这在某些情况下可能有效,但通常是一种不好的做法。以不同的方式命名它们,并让处理输入的代码处理数据。
如果您真的需要一个名称为“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>
关于javascript - 选择 "other"字段时将选择选项发布到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50897502/