在<select>元素内进行特定选择时,如何创建文本字段?</select>

时间:2012-10-10 22:44:30

标签: javascript html

我正在尝试创建一个包含几个下拉选择元素的基本Web表单。这两个元素都有一个“其他 - 请指定”选项,我希望每当选择“其他”选项时,文本字段会自动显示在下拉框下方,如果选项从更改中删除,则文本字段将消失“其他”是另一种选择。

我不知道如何做到这一点,任何人都可以帮忙吗?

4 个答案:

答案 0 :(得分:1)

jsfiddle上的工作代码

JS:

document.getElementById("sid").onchange= function(){

    if(this.value == 'Other'){
       document.getElementById("other").style.display = '';
    }
    else{
          document.getElementById("other").style.display = 'none';
    }
}​

HTML:

<select id='sid'>
<option>1</option>
<option>2</option>
<option>Other</option>
</select>
<input id='other' style='display:none' /> ​

答案 1 :(得分:0)

您可以使用CSS来完成此任务。试试这个页面http://www.coderanch.com/t/112986/HTML-CSS-JavaScript/Show-hidden-text-field

答案 2 :(得分:0)

在您的select标签上

,您可以添加onchange =“changed()”属性。 然后创建一个名为changed的javascript函数。

其余时间使用Jquery。

例如

function changed() {
    if($('#idOfSelect').val() == "Other") {
        $('#idOfSelect').after("<textbox>bla bla</textbox>");
    }
}

类似的东西。

答案 3 :(得分:0)

example jsfiddle

HTML

<select id="aDropDown">
    <option value=1>1</option>
    <option value=2>2</option>
    <option value=3>3</option>
    <option value=other>Other</option>
</select>
<p id="aDropDownOther" class="other-label">Other Label</p>​

JS

var ele_aDropDownOther = document.getElementById('aDropDownOther');

document.getElementById('aDropDown').onchange = function() {
    if (this[this.selectedIndex].value === "other") {
        ele_aDropDownOther.style.display = "block";
    } else {
        ele_aDropDownOther.style.display = "";
    }
}​

CSS

.other-label {display:none;}​

或类似地使用jQuery

example jsfiddle

的JavaScript / jQuery的

var $aDropDown = $('#aDropDown'),
    $aDropDownOther = $('#aDropDownOther');

$aDropDown.change(function() {
    if ($aDropDown.val() === "other") {
        $aDropDownOther.show();
    } else {
        $aDropDownOther.hide();
    }
});​