当我选择显示相关子类别的任何主要类别时,我有主要类别和子类别的产品。但是当我发布表单时,它会发布最后一个子类别值而不是选定的子类别值。
JavaScript代码
$(function() {
$('#category').change(function(){
$('.sub-category').hide();
$('#' + $(this).val()).show();
});
});
HTML代码
<Select id="category" name="product_category">
<option value="eco">Main Category 1</option>
<option value="organic">Main Category 2</option>
</Select>
<Select name="product_sub" id="eco" class="sub-category">
<option value="eco1">Sub Category 1</option>
<option value="eco2">Sub Category 2</option>
</Select>
<Select id="organic" name="product_sub" class="sub-category" style="display:none;width:270px;">
<option value="organic1">Sub Category 3</option>
<option value="organic2">Sub Category 4</option>
</Select>
例如:当我选择子类别1时,其子类别3的发布值
答案 0 :(得分:5)
所有成功的表单字段都会提交给服务器。 CSS display
不会影响表单字段是否被视为成功。 The HTML spec defines what makes a control successful.
成功的控制对于提交是“有效的”。每一次成功 control的控制名称与其当前值配对 提交的表单数据集。必须定义成功的控制 在FORM元素中,必须具有控件名称。
然而:
- 禁用的控件无法成功。
- 如果表单包含多个提交按钮,则只有激活的提交按钮成功。
- 所有“打开”复选框都可能成功。
- 对于共享name属性相同值的单选按钮,只有“on”单选按钮可能会成功。
- 对于菜单,控件名称由SELECT元素提供,值由OPTION元素提供。只有选定的选项可能 成功的。如果未选择任何选项,则控件不会 成功,名称和任何值都没有提交给 表单提交时的服务器。
- 文件选择的当前值是一个或多个文件名的列表。提交表格后,每个文件的内容都是 与其余表格数据一起提交。文件内容是 根据表单的内容类型打包。
- 对象控件的当前值由对象的实现决定。
如果控件在提交表单时没有当前值, 用户代理不需要将其视为成功控制。
此外,用户代理不应考虑以下控件 成功的:
- 重置按钮。
- 已设置declare属性的OBJECT元素。
由于样式而未呈现的隐藏控件和控件 表格设置可能仍然成功。
Disable您不想提交的表单字段。
$('#category').change(function(){
$('.sub-category').hide().prop('disabled', true);
$('#' + $(this).val()).show().prop('disabled', false);
});