2

我有一个 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 从来没有遇到过这样的问题。

4

1 回答 1

0

如果您让它们保持启用状态,但将属性更改typehidden那么 PHP 应该会在您提交它们时看到这些字段。

更新
以下情况如何:

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

请注意,这不是由 PHP 引起的问题,而是由浏览器如何/何时将表单字段解释为提交表单时要发送的有效表单字段引起的

于 2013-03-20T16:42:10.150 回答