Javascript 根据下拉选择隐藏元素并取消对它们的要求

Javascript 根据下拉选择隐藏元素并取消对它们的要求,javascript,php,jquery,paypal,Javascript,Php,Jquery,Paypal,我见过使用jquery或javascript的例子,但我对这两种语言都没有经验,所以我尝试的一切都失败了。如果有人选择“PayPal”选项,我需要隐藏所有必填字段和“未请求” 请输入付款方式。 卡片类型* --请选择-- 美国运通 万事达卡 贝宝 签证 卡号* 安全代码* 到期月份* --月-- 一月-(01) 二月-(02) 三月三日 四月四日 五月—(05日) 六月-(06) 七月七日 八月-(08) 九月-(09) 十月十日 十一月十一日 十二月十二日 到期年* --年-- 在('cha

我见过使用jquery或javascript的例子,但我对这两种语言都没有经验,所以我尝试的一切都失败了。如果有人选择“PayPal”选项,我需要隐藏所有必填字段和“未请求”


请输入付款方式。
卡片类型*
--请选择--
美国运通
万事达卡
贝宝
签证
卡号*
安全代码*
到期月份* --月-- 一月-(01) 二月-(02) 三月三日 四月四日 五月—(05日) 六月-(06) 七月七日 八月-(08) 九月-(09) 十月十日 十一月十一日 十二月十二日 到期年* --年-- 在('change',function(){})上添加事件
$('CardType')


在这个函数中,使用函数
$获取所有输入。each()
如果select的值是paypal
removeAttr()
“required”用于所有或只是
hide()
它或任何你想要的东西。

对不起,我几乎听不懂你说的话,唯一需要做的事情是,在有输入之前,不允许其他事情发生,这样做很容易做到,在隐藏其他事情的同时,更改属性以删除“required”

 $("#CardType").change(function(){
    if ($("#CardType).value()=="PayPal"){
    $("fieldYouWantToHide).hide();
    }

 });

首先,您可能错误地使用了
标记。在我的JSFIDLE演示中,我想检查每个标签的文本,以避免隐藏卡片类型的单元格。但是,标签不仅围绕文本,而且还围绕
元素本身。这不是标签标签的使用方式。在更新的演示中,我仍然不会显示卡类型单元格,但您将看到必须使用(.split方法)来确定标签名称的混乱

接下来,我建议将字段设置为必需,而不是表格单元格

验证代码时,如果必须始终查看相应的表单元格属性,则更难确定是否需要字段。只需查看字段本身的属性就非常简单了。然而,这里有一些东西可以解决你的问题:

修改示例以显示隐藏除卡片类型单元格以外的所有单元格:

还有一个示例演示在select更改为其他内容时取消隐藏和恢复
required
类。注意,有必要向每个
元素添加一个额外的类(“req_poss”),可能需要为其重新添加所需的类:


这个JSFIDLE演示非常有用!我将不得不更多地使用它。我认为将CardType作为与其他所有内容相同的必需类不是一个好主意,因为它也会被隐藏。我将为此更新id并从那里获取它。非常感谢!谢谢你的胡言乱语!我最终会尝试一些花费我太长时间的事情。这太棒了。:)
 $("#CardType").change(function(){
    if ($("#CardType).value()=="PayPal"){
    $("fieldYouWantToHide).hide();
    }

 });
$('#CardType').change(function() {
    if ($(this).val() == 'PayPal'){
        $('.required').each(function() {
            $(this).removeClass('required');
            $(this).hide();
        });
    }
});
var lbl;
$('#CardType').change(function() {
    if ($(this).val() == 'PayPal'){
        $('.required').each(function() {
            lbl = $(this).find('label').text().split('*')[0];
            if (lbl != 'Card Type '){
                $(this).removeClass('required');
                $(this).hide();
            }
        });
    }
});
var lbl;
$('#CardType').change(function() {
    if ($(this).val() == 'PayPal'){
        $('.required').each(function() {
            lbl = $(this).find('label').text().split('*')[0];
            if (lbl != 'Card Type '){
                $(this).removeClass('required');
                $(this).hide();
            }
        });
    }else{
        $('.req_poss').each(function() {
            $(this).addClass('required').show();
        });
    }
});