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