这一切都可以在客户端完成。基本上,您可以创建一个包含所有您想问的问题的表单,然后使用JavaScript来显示额外的问题。如果用户没有点击按钮打开额外的问题,他们只是保持其空值。如果他们确实打开了额外的问题,会弹出页面,用户将填写输入。一旦他们完成这些问题,您只需隐藏它们,但仍然保留用户设置的值。
因此,将可选字段放在窗体的隐藏div中,然后在单击按钮时显示该div。
<form ...>
... required inputs
...
...
<a href="#" id="show-optional-inputs">Ask more questions</a>
<div id="optional-inputs" style="display: none;">
<input ... />
<input ... />
<a href="#" id="save-optional-inputs">'Save' optional questions</a>
</div>
<input type="submit" value="submit" />
然后,给#optional-inputs
一些CSS(或者你可以风格它,只要你喜欢):
#optional-input {
left: ...px;
position: absolute;
top: ...px;
width: ...px;
}
对于按钮/链接打开的其他问题,添加一些JavaScript/jQuery打开div作为绝对定位窗口。
$('#show-optional-inputs').click(function(e) {
$('#optional-inputs').show();
e.preventDefault();
});
这会让你大部分在那里。您需要绑定一个事件来触发可选问题框以保存/关闭 - 实际上只是隐藏了框并保留了用户在表单中设置的值。
你能告诉我们你的代码吗?这不仅仅是将存储的选择从数据库中取出并用于相应地设置弹出窗口的标记吗? – 2010-11-06 11:35:58
不能建议,直到你告诉我们如何打开孩子windown和填充它,以及如何发生儿童和父窗口之间的沟通。 – 2010-11-06 11:37:37