我有一个表单,可以在使用php保存用户输入的值。 某些字段位于显示的div中:隐藏,直到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,并且selected设置为display:block。提交时,将保存选定的电台,但不会调用onclick来显示范围。
第二个span(id = jobslist)内容由innerHTML使用在进行选择时对PHP调用ajax的结果填充。在提交时,将保存所选选项,但不会调用onchange来填充范围。
因此,我需要触发已保存的无线电值的onclick以显示我的内容并触发已保存的选择的更改以填充其他内容。
注意:我使用onblur和javascript来设置焦点,所以任何操作都会触发内容,但是在填写我不想要的表单时会造成不必要的停顿。
好吧,我有一个jsfiddle用默认选择来说明我的问题因为我不能用PHP来保存输入的值。
想象一下,表单刚刚提交,保存的值是选中的单选按钮(客户),下拉选项(1)添加单词“customer”。
理想情况下,整个表单仍然可见(选定的收音机,选定的选项和添加到最后一个范围“客户”的内容)。
相反,只有选定的收音机才可见,除非再次单击以取消隐藏选择下拉菜单。下拉保留其“值”,但最后一个跨度中的内容只会出现在更改中。
尝试一下并提前感谢任何建议。
答案 0 :(得分:0)
你可以挂一个函数来onload来检查单选按钮并通过调用getJobtype()来模拟点击吗?这将得到最初的情况,单选按钮已经是用户想要的方式。进一步的点击将按计划进行。
编辑添加:如果我理解正确,那么第一次加载页面时一切都很好,因为用户必须单击某些内容并运行getJobType()函数。但是,当重新加载页面时,已经检查了正确的单选按钮,用户没有更改任何内容,并且您的功能无法运行。如果这是正确的,从onload运行getJobType()应该修复它。
您可能需要<input type="hidden" id="firstrun" value="true">
之类的内容,PHP会在页面的后续加载中将其设置为false
,而onload函数只会在&#34; firstrun&#34;是假的。编辑:你不需要这个,因为getJobType()没有默认动作;继续阅读。
编辑更多:您在“客户”单选按钮上有checked="checked'
,因此如果用户是客户,即使是初始运行也不会显示隐藏的材料。< / p>
在最初加载页面时删除checked="checked"
,以便在初始演示文稿中,都不会选中任何按钮。*然后将window.onload=getJobType;
添加到JavaScript的末尾。
在初始加载时,getJobType()将不执行任何操作,因为它会检查两个按钮并且没有默认操作。单击一个按钮时,getJobType()将运行并根据单击的按钮执行操作。
当后续加载页面时,将检查其中一个按钮,当onload
运行getJobType()时,它将执行相应的操作。
单选按钮,SELECT值以及保留和反映的任何其他表单元素&#34;当表单加载第二(及后续)时,服务器端PHP将是正确的。在需要onload
JavaScript函数的地方,当其中一个值也更改其他内容时,例如使隐藏的DIV可见。如果有getJobType()以外的函数来操作DOM,那么编写一个init
函数可能会更加清晰,该函数根据PHP进程保留的表单元素的值来设置DOM。
*
我通常主张默认选中某些按钮,以便用户可以始终返回初始状态。这种情况似乎是一个例外。