jQuery show / hide字段不通过php验证

时间:2013-03-20 01:17:21

标签: php jquery validation hide show

我有一个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一无所知)?

提前感谢您的帮助

编辑:刚检测到另一个错误:如果jquery脚本淡化表单的另一部分,PHP不会再对其进行验证。为什么?从来没有像php-jquery这样的问题。

1 个答案:

答案 0 :(得分:0)

如果您启用它们,但将属性type更改为hidden,则PHP应在您提交时看到这些字段。

<强>更新
以下场景如何:

  • 显示了5个字段
  • 开始隐藏两个字段(A + B)
  • '添加'与A + B同名的两个type=hidden字段,并将其当前值从A + B复制到“A +”B
  • PHP应该看到这两个隐藏字段,而不是当前淡出的字段。
  • 如果用户在淡出时没有提交,那么当字段淡出时删除`A +`B字段并将两个淡化字段的属性设置为hidden
  • 反过来重新显示这些字段。

请注意,这不是由PHP引起的问题,而是由浏览器在提交表单时将表单字段解释为有效表单字段的方式/时间引起的