默认情况下隐藏元素取决于下拉列表

时间:2011-02-19 14:34:55

标签: php jquery hide element

我有一个表单元素,根据表单中的下拉元素隐藏或显示。我已经能够在下拉列表更改时更改可见性。

这是我现在的代码:

$("select[name=post_category]").change(function(){
var id = $("select[name=post_category]").val();
if(id != 3){
    $("dt#post_url-label").hide();
    $("dd#post_url-element").hide();
}
else{
    $("dt#post_url-label").show();
    $("dd#post_url-element").show();
}
});

我想要隐藏的字段,除非页面加载id = 3(所以我不能用CSS隐藏它们),在这种情况下,字段必须从一开始就可见。现在,该字段始终在页面加载中可见。

有什么建议我应该怎么做?

3 个答案:

答案 0 :(得分:1)

试试这个:

$('select[name="post_category"]').change(function() {
    $('dt#post_url-label, dd#post_url-element').toggle( +this.value === 3 );
}).change();

想法是立即触发变更事件。您应该可以使用triggerHandler('change')change()来实现这一目标。

现场演示1: http://jsfiddle.net/XE78E/
现场演示2: http://jsfiddle.net/XE78E/1/

2.演示显示,如果预先选择了3-rd选项,则元素可见。

答案 1 :(得分:0)

那么,如果id = 3,为什么不检查页面加载,并使用相同的逻辑来隐藏或显示元素。

答案 2 :(得分:0)

那段代码是javascript,对吗? 在页面加载时调用$(“select [name = post_category]”。)change()。

window.onload = function() { $("select[name=post_category]").change() }

或将其添加到现有的onload函数中。