在隐藏的联系人表单上使用jqTransform,选择未显示的框值

时间:2011-10-05 03:10:22

标签: javascript jquery css contact-form

对不起,如果这是一个痛苦的屁股,但我真的可以在这里使用一些帮助:

http://dev.rjlacount.com/treinaAronson-form/

单击左上角的“联系人”按钮可以看到联系表格。我正在使用jqTransform jQuery插件来设置它的样式。最初隐藏的是display:none;应用ID为“panel”的div,并使用以下内容滑入:

$("#flip").click(function(e){
    e.preventDefault();
    $("#panel").slideToggle("3000");
});

使用此设置,联系表单不会在其字段中显示选择框的当前值。如果我改为删除display:none;我的CSS中面板div的规则,并在页面加载后隐藏表单:

$("#panel").hide();

表单正确显示。如果我在页面加载后用jQuery隐藏它,有没有人知道如何使这个工作并避免我得到的开放面板的闪光?

非常感谢任何建议。如果我能提供更多信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

问题是,jqtransform设置标签的宽度(转换选择中当前可见的值)以匹配原始选择的宽度。

如果原始select(或其父级)设置了display:none,并且它没有指定任何css宽度,则该元素上.width()的结果为零。

你实际上可以检查(使用firebug或google chrome dev工具),不是联系表单不显示select元素的当前值,而是显示宽度等于零。

在您的情况下,最简单的解决方案是设置(在您的css文件中)作为联系表单一部分的选择的固定宽度。这样,即使它们最初会被隐藏,jqtransform也会为标签设置正确的宽度。例如:

/* css declaration */
#change-form select {
    width: 390px;
}

旁注:当然还有其他方法可以使它工作,包括调整jqtransform脚本以适合您的特定用例。与设置提到的标签宽度相关的部分脚本从第289行开始。