【发布时间】:2013-03-08 23:02:27
【问题描述】:
我有一个基于用户选择选项显示/隐藏一些禁用字段的 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 从来没有遇到过这样的问题。
【问题讨论】:
-
您可以让这些字段保持启用状态并隐藏它们吗?
-
这是不可能的,因为如果字段被 jQuery 启用和隐藏,php 验证将不会通过。如果这些字段被禁用,则 php 验证将看不到它们。这就是为什么如果用户不选择它们,我会禁用这些字段的原因。
-
改为
type='hidden'?当你想向他们展示时,让他们type='text'(或其他东西)。不过让它们保持启用状态。 -
@Someone33 不确定我明白你在问什么。你是说它不会通过 PHP 验证,因为提交表单时项目正在淡入/淡出?
-
@kyle php 验证不会通过,因为如果字段淡入,php 将不再看到它们(使用
if(!isset($_POST['message'])))ecc。我知道,听起来很奇怪。否则,使用@987654326 @验证不会通过。请参阅 google isset vs empty。
标签: php jquery validation hide show