我使用下面的代码显示输入字段"其他"选项已被选中。
当"其他"被选中。
但是,除了"其他"之外的任何其他选项,我无法发布到数据库。被选中。
问题是文本输入否定了选择选项。 知道如何去做吗?
有一个问题试图解决问题,但我没有足够的声誉发表评论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>
答案 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>