根据选择隐藏文本区域 - Jquery

时间:2013-07-20 20:49:22

标签: javascript jquery

这就是我想要做的。页面加载时,将选择“Self”选项,旁边没有文本区域。当用户选择“其他”时,文本区域将显示在其旁边。任何帮助将非常感激。我已经坚持了一点,我准备拿出我留下的头发。

这是我的代码。

HTML

<select name="employee_choice" id="employee_choice" data-role="slider" data-theme="c"data-track-theme="a">
<option value="0">Self</option>
<option value="1">Other</option>
</select>

<input type="text" id="pernr" name="pernr" width="12em" />

JS

$('#employee_choice').change(function(){

var pernrField = $('#pernr');
var empSelect   = $('#employee_choice').val();

pernrField.hide();



if (empSelect == '1'){
pernrField.show();
}
if (empSelect == '0'){
pernrField.hide();
}
});

4 个答案:

答案 0 :(得分:2)

根据所选值切换输入的可见性:

$('#employee_choice').on('change', function() {
    $('#pernr').toggle(this.value==='1');
});

FIDDLE

答案 1 :(得分:0)

您需要检查所选值。

var empSelect = $('select [name =“employee_choice”]')。val()

而不是多次,如果你也可以使用其他

答案 2 :(得分:0)

您需要在页面加载时首先运行它。 As seen in this jsFiddle,如果您将JavaScript更改为以下内容,则代码可以正常运行:

function showOrHidePernr() {
    var pernrField = $('#pernr');
    var empSelect = $('#employee_choice').val();
    pernrField.hide();

    if (empSelect == '1') {
        pernrField.show();
    }
    if (empSelect == '0') {
        pernrField.hide();
    }
}

$('#employee_choice').change(showOrHidePernr);
$(function() {
   showOrHidePernr(); 
});

答案 3 :(得分:0)

首先初始化状态,同时初始化change()事件:

show_pernrfield();

$('#employee_choice').change(function(){
    show_pernrfield();
});

function show_pernrfield() {
    var pernrField = $('#pernr');
    var empSelect   = $('#employee_choice').val();

    if (empSelect === '1') {
        pernrField.show();
    }
    else {
        pernrField.hide();
    }
}

看看:http://jsfiddle.net/YhaCh/1/

尝试使用console.log()来检查变量的值 - 然后很明显你的脚本采取了哪些操作。