【发布时间】:2014-09-15 13:14:25
【问题描述】:
我有一个表单,可以保存用户在使用 php 提交时输入的值。 某些字段在 div 中是 display:hidden,直到 onclick 或 onchange 函数将 div 更改为显示。
提交表单后,如何仅显示包含已保存值的字段的 div?我已将值保存在始终可见的字段中,但无法触发它们的功能。
我使用的 jquery 很少,因为我对语法不熟悉,并且更愿意实现我可以理解和适应的解决方案。如果简单的 jquery 是更好/更快/更简单的解决方案,它是可以接受的。
谢谢
代码示例:
<input type="radio" id="customer" name="jobtype" value="customer" onclick="getJobType()" autofocus>Customer
<input type="radio" id="store" name="jobtype" value="store" onclick="getJobType()">Store
<span id="customerjobs" style="display:none">
<select id="customer" name="customer" onchange="createJobsList(this.value)">
*various options*
</select>
<span id="jobslist"><br></span>
</span>
第一个跨度 (id=customerjobs) 最初是隐藏的。在从收音机中选择时,除了相应的跨度之外的所有设置都设置为 display:none,并且选定的设置为 display:block。提交时,选择的单选会被保存,但不会调用 onclick 来显示跨度。
第二个 span (id=jobslist) 内容由 innerHTML 填充,该内容在进行选择时使用对 PHP 的 ajax 调用的结果。提交时,选择的选项会被保存,但不会调用 onchange 来填充跨度。
所以我需要触发已保存单选值的 onclick 以显示我的内容并触发已保存选择的 onchange 以填充其他内容。
注意:我最初使用 onblur 和 javascript 来设置焦点,因此任何操作都会触发内容,但它会导致填写我不想要的表单时出现不必要的暂停。
- 页面加载时只有一个单选选项。
- 用户单击单选按钮。
- Onclick 函数将 span id=customerjobs 的样式更改为 display:block。
- 现在可以看到跨度内的选择输入。用户选择一个选项。
- Onchange 函数进行 ajax 调用以请求来自服务器的信息,该信息位于 span id=jobslist 中。
- 用户将表单提交到同一页面。
- 表单会保存输入的值,因此在重新加载页面时仍会选择它们。
- Onclick 和 onchange 函数不会由 PHP 保存的值触发,因此步骤 3 和 5 永远不会发生。除非再次单击,否则页面只剩下单选按钮。
好吧,我有一个 jsfiddle 来说明我使用默认选择的问题,因为我不能使用 PHP 来保存输入的值。
想象一下刚刚提交的表单,保存的值是选中的单选按钮(客户)和从下拉列表中选择的选项(1),其中添加了“客户”一词。
理想情况下,整个表单仍然可见(选定的收音机、选定的选项和添加到最后一个跨度“客户”的内容)。
相反,只有选定的单选是可见的,除非再次单击它以取消隐藏选择下拉菜单。下拉列表也保留其值,但最后一个跨度中的内容只会出现在更改中。
尝试一下并提前感谢任何建议。
【问题讨论】:
-
您能否提供更多信息和/或您首选解决方案的示例以及您现在得到的结果
-
我仍然不明白你需要实现什么。您能否提供您正在做什么的步骤(编号或其他),以便我们尝试解决这个问题? :)
-
逐步添加了页面最初和提交时的操作方式。
-
我实际上还没有实现保存的单选值,所以我忘记了它不在我的代码示例中。相反,我使用的是默认检查的第一个收音机,那是我发现 onclick/onchange 问题。感谢链接作为参考,amarnath。第 8 步是我遇到的问题,但没有保存值。
标签: javascript php html forms