我有一个jQuery代码显示/隐藏一些禁用字段,基于用户选择选项:
$('.fieldcontent').not('.info').hide();
$('#selector_cs').change(function() {
$('.fieldcontent').customFadeOut(100);
$('.' + $(this).val()).customFadeIn(900);
$('input').prop('disabled',false);
$('textarea').prop('disabled',false);
$('select').prop('disabled',false);
});
});
最令人头痛的是:如果一个或多个字段淡出,这些字段不能通过我的php验证,也不能提交表单。
如果javascript在所有浏览器上都被禁用,则表单可以正常工作。
PHP验证
if(!isset($_POST['products'])) {
$products[2] = clean_var($_POST['products']);
}
else {
$error = 1;
$products[3] = 'color:#FF0000;';
}
所有字段
是否有任何php/jquery解决方案(没有ajax请,因为我不会使整个表单再次,不知道任何关于ajax)?
提前感谢您的帮助
EDIT:刚刚检测到另一个错误:如果jquery脚本在表单的另一部分中消失,PHP不再验证它。为什么?
如果您保持启用状态,但将属性type
更改为hidden
,则PHP应该在提交时看到这些字段。
下面的场景如何:
- 显示的5个字段
- 开始隐藏两个字段(A+B)
- "添加"两个与A+B名称相同的
type=hidden
字段,并将其当前值从A+B复制到' A+ ' B PHP应该看到这两个隐藏字段,而不是当前正在淡出的字段。 - 如果用户在淡出时没有提交,那么当字段淡出时,删除' A+ ' B字段并将两个淡出字段的属性设置为
hidden
- 反向显示字段。
请注意,这不是由PHP引起的问题,而是由浏览器在提交表单