我不确定我做错了什么但只是我的脚本的前半部分被拾取了。我尝试了各种组合,一次只能使用一个if语句。
if (!$('#LocalDelivery').is(":checked")) {
$('#datepicker').attr("value", "");
$('#LocalDate').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
$('#LocalDate').attr('name',
$('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name'));
}
else
{
if (!$('#StandardShip').is(":checked")) {
$('#LocalDate').attr("value", "");
$('#datepicker').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
$('#datepicker').attr('name',
$('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name'));
}
}
谢谢。
编辑: 为了澄清,我明白“其他”是指其中一种。这里的问题是,即使第二个if语句满足条件,它也不会执行。我只能使用上述代码或我尝试过的任何类似变体,一次得到一个人的反应。
答案 0 :(得分:2)
尝试
if (!$('#LocalDelivery').is(":checked")) {
$('#datepicker').attr("value", "");
$('#LocalDate').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
$('#LocalDate').attr('name',
$('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name'));
}
if (!$('#StandardShip').is(":checked")) {
$('#LocalDate').attr("value", "");
$('#datepicker').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
$('#datepicker').attr('name',
$('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name'));
}
如果你正在使用else,那么如果第一个if
返回false
,则会执行第二个if
,所以你所拥有的就是你期望的。第一个{{1}}返回true,因此忽略第二个。
答案 1 :(得分:2)
尝试:
if ($('#LocalDelivery').is(":checked") == false) {
$('#datepicker').attr("value", "");
$('#LocalDate').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
$('#LocalDate').attr('name',
$('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name'));
}
if ($('#StandardShip').is(":checked") == false) {
$('#LocalDate').attr("value", "");
$('#datepicker').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
$('#datepicker').attr('name',
$('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name'));
}
您还可以使用.is(":checked")
更改.attr("checked","checked")
。
修改强>
我只是注意到你正在尝试在同一个元素#datepicker
中实现两个特定的值,这就是必须导致你的第一个条件不被选中的原因。
我的意思是,当未检查两个checbox时,您试图将两个值放在一个元素#datepicker
中。
上述意味着代码的逻辑是错误的。例如,您可以只有一个复选框并执行以下操作:
if ($('#LocalDelivery').is(":checked") == false) {
$('#datepicker').attr("value", "");
$('#LocalDate').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
$('#LocalDate').attr('name',
$('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name'));
} else {
$('#LocalDate').attr("value", "");
$('#datepicker').val($('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').val());
$('#datepicker').attr('name',
$('.productAttributeConfigurableEntryText div.productAttributeValue input[type="text"]').attr('name'));
}
答案 2 :(得分:1)
这就是应该如何运作的。如果前半部分为true
,则不会执行else
块。每次只执行一个块。从来没有
答案 3 :(得分:1)
这就是if
和else
的含义。
if (A) {
B
}
else {
C
}
如果A
,则B
,否则 C
。
如果你不打算这个小方程的“其他”部分,那就不要使用else
!