当它是唯一存在的选项时,在特定选项上显示隐藏文本框将不起作用



当选择某个选项时,我有以下javascript来显示一个隐藏的文本框。当存在多个选项时,它可以正常工作。但是,当唯一的选项是使文本框出现的选项时,它就不起作用了。我也试过加载,但没有结果。

       function showOther(fieldObj, otherFieldID)
            {
                var fieldValue = fieldObj.options[fieldObj.selectedIndex].value;
                var otherFieldObj = document.getElementById(otherFieldID);
                otherFieldObj.style.visibility = (fieldValue=='other') ? '' : 'hidden';
                return;
            }`

这是工作小提琴http://jsfiddle.net/8bm9R/2/查看第一个选择字段

如果列表中只有一个option,则onchange事件不会激发。改为使用onclick

<select name="task" onclick="showOther(this, 'new');">

(JSFiddle请:http://jsfiddle.net/8bm9R/7/)
为了防止这种行为并能够使用onchange,最好在列表中添加一些默认选项,比如"选择工作"。。

onchange Event仅在发生更改时触发。你可以这样做:请选择。。。

或者:

<select name="jobs" onmouseup="showOther(this,'new');">

最新更新