【发布时间】:2016-08-16 03:46:53
【问题描述】:
在我创建的 wordpress 上,我使用下拉菜单通过 JQuery 显示 3 个隐藏表单中的 1 个。
第一个问题是当表单无效(即缺少字段、错误电子邮件等)时,表单会重置页面,因此在您再次从下拉列表中选择该表单之前,所有内容都不再可见。
第二个是表单是插件,所以我不直接访问提交操作,如果我要进入插件文件,它可能会在不久的将来被更新覆盖。
HTML:
<div class="ginput_container ginput_container_select">
<select id="app_pick" class="medium gfield_select">
<option value="">Choose Here</option>
<option value="Greek_Dance">Greek Dance</option>
<option value="Greek_School">Greek School</option>
<option value="Youth_Group">Youth Group</option>
</select></div>
查询:
jQuery(document).ready(function($){
$('#gform_wrapper_3').hide();
$('#app_pick').on('change', function() {
if ( this.value == ''){
$('.f1').css('display', 'none');
$('.f2').css('display', 'none');
$('.f3').css('display', 'none');
}
else if ( this.value == 'Greek_Dance'){
$('.f1').css('display', 'block');
$('.f2').css('display', 'none');
$('.f3').css('display', 'none');
}
else if ( this.value == 'Greek_School'){
$('.f1').css('display', 'none');
$('.f2').css('display', 'block');
$('.f3').css('display', 'none');
}
else if ( this.value == 'Youth_Group'){
$('.f1').css('display', 'none');
$('.f2').css('display', 'none');
$('.f3').css('display', 'block');
}
else {
$('.f1').css('display', 'none');
$('.f2').css('display', 'none');
$('.f3').css('display', 'none');
}
});
});
F1,F2,F3 分别为 Display: none 默认形式。
我的目标是让下拉列表中选择的表单停留在 Display: block;提交后。
【问题讨论】:
-
我认为问题是如果页面被提交并且它强制页面重新加载那么你还将重新加载所有的 js 等,所以你需要转换为 ajax 尝试或以某种方式 js cookie 等
-
您需要发布更多代码。如果不是 HTML
<form>标记中的简单action,则发布显示的表单和提交时处理的 jQuery -
如果您可以使用 js cookie 或 ajax 提交某种答案,我会更愿意尝试一下。我对这两个领域的了解非常有限,但是如果在这方面有什么我可以做的,我对 php 很有经验。
-
@Steve 我很难找到表单正在处理的 jquery。该方法是发布的,所以在提交时它可能会刷新然后执行任何 jquery,不包括我自己的,这在刷新后无论如何都需要人工输入,除非有某种方法可以通过帖子保存该信息。