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

时间:2013-06-25 09:20:19

标签: javascript jquery html

当选择某个选项时,我有以下javascript来显示隐藏文本框onchange。当存在多个选项时,它可以正常工作。但是,当唯一的选项是使文本框出现的选项时,它将无效。我试过onload也没有结果。

       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/查看第一个选择字段

2 个答案:

答案 0 :(得分:3)

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

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

(JSFiddle please:http://jsfiddle.net/8bm9R/7/)。
要防止此行为并且能够使用onchange,最好在列表中添加一些默认选项,例如“选择作业”。

答案 1 :(得分:0)

仅在更改事件时才会触发onchange事件触发器。你可以这样做: 请选择......

或者也许:

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