【发布时间】:2016-11-24 23:39:31
【问题描述】:
我的问题在于这部分代码。我需要针对不同情况检查这两个条件。
if(!printnameoptionfucntions.printnameValidation()){
return false;
}
else if(!optionfucntions.engravingValidation()){
return false;
}
它总是只检查第一个条件。 我也试过这样
if(!printnameoptionfucntions.printnameValidation()){
return false;
}
if(!optionfucntions.engravingValidation()){
return false;
}
这是#button-add click的代码
$('#button-add').on('click', function() {
//.product-info select
//ajax_price();
if($(".engravingDropDown option:selected").attr('data-engraving') == 'No Engraving') {
$('#myModal').modal('hide');
}
/* change button text depend on options selection */
if($('#myOptions').is(':has(span)') === true){
$('#select-options').text('REVIEW OR EDIT OPTIONS AND ACCESSORIES');
}else{
$('#select-options').text('SELECT AVAILABLE OPTIONS AND ACCESSORIES');
}
<?php if($showCustomizeBook){ ?>
$('#customizeBookCustomPriceText').show();
<?php } ?>
if(!printnameoptionfucntions.printnameValidation()){
return false;
}
else if(!optionfucntions.engravingValidation()){
return false;
}
checkDropdownToSetButtonvalue();
$('.selectMandatoryOption').hide().text('');
});
更新:
我的网站中有不同的产品,客户可以在下拉菜单中选择不同的选项。
一种类型的产品有engraving fonts,带有字体选项 Narkisim、cherokee 等。如果用户确实选择了任何字体,则会出现一个输入字段,用户需要在其中编写一些要打印的文本。如果用户选择了一种字体,比如说narkisim 并且没有输入一些文本并单击#button-add 它不应该允许它在不添加一些文本的情况下添加。
其他类型的产品有Name to be printed,可选择书外、书内或无名。如果用户确实选择了一个选项,则会出现一个输入字段,用户需要在其中编写一些要打印的文本。如果用户选择一个选项让说inside the book 并且没有输入一些文本并单击#button-add 它不应该允许它添加而不添加一些文本。
我希望现在有意义吗?
更新 2:
对于带有打印选项的产品
console.log(printnameoptionfucntions.printnameValidation())
它返回错误
console.log(optionfucntions.engravingValidation())
返回真
对于带有雕刻选项的产品
console.log(printnameoptionfucntions.printnameValidation())
返回真
console.log(optionfucntions.engravingValidation())
它返回错误
【问题讨论】:
-
除非我错误地理解了您的需求,否则只需在您的两个
if()之间抑制else(就像您的第二次尝试一样)就可以了。这样,只有当两个条件都为真时才会执行最后两个语句。 -
@cFreed 不正确。第一次检查中的
return false;使 else 语句完全多余。有没有它的效果都是一样的 -
@cFreed 先生,它不起作用。检查问题的更新
-
@Mehar44 是的,它不起作用,我的错(见我之前的评论)。但是通过您的编辑,我不再了解您的需求。请详细说明:在每种情况下,您实际上希望发生什么?更重要的是:目前没有像预期的那样发生什么?
-
@Mehar44 你把问题复杂化了!请首先简单地记录结果并检查它们。
标签: jquery if-statement