jQuery显示/隐藏字段没有通过php验证


jQuery show/hide fields doesn't pass php validation

我有一个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引起的问题,而是由浏览器在提交表单

时如何/何时将表单字段解释为要发送的有效表单字段引起的。