我真的试图避免嵌套在此代码片段中...
deal_trade_in_model_1 = document.getElementById('deal_trade_in_model_1').value;
deal_trade_in_amount_1 = document.getElementById('deal_trade_in_amount_1').value;
if (typeof deal_trade_in_model_1 !== 'undefined' && deal_trade_in_model_1 !== null) {
console.log(deal_trade_in_amount_1);
console.log(deal_trade_in_model_1);
if (deal_trade_in_model_1 !== null || deal_trade_in_model_1 !== "") {
if (deal_trade_in_amount_1 == null || deal_trade_in_amount_1 == "") {
console.log('entered into function');
document.getElementById("deal_trade_in_model_1").value = "";
document.getElementById("deal_trade_in_amount_1").value = "";
}
}
}
基本上,这个函数的作用是获取两个字段的值...有关它们的知识以及我想对它们做什么:
1) 它们不是必需的
2)如果填写其中一项,则必须填写另一项
3)如果只填写其中一项,用户点击提交,调用了这部分函数,我想删除两者的值。
我尝试过复合
&& (and)
和
|| (or)
但可恶的是,它不起作用。
主要问题:摆脱嵌套的最佳方法是什么(我计划这样做两次,只是交换代码),这将是最有效的?我希望最好以尽可能少的 IF 语句来完成。
请注意:如果您对代码进行了大量更改,我可能不知道您在说什么..请准备好教我或帮助我学习!
最佳答案
听起来您只想在其中一个字段为空而不是两个字段都为空时执行某些操作。假设这两个元素都是文本字段,.value
将始终返回一个字符串。如果字符串为空,则将字符串转换为 bool 值结果为 false
,否则为 true
。
所以
Boolean(deal_trade_in_model_1) === Boolean(deal_trade_in_amount_1)
如果两个字段都有值(都将转换为 true
)或两个字段均为空(都转换为 false
),将为 true
>).
因此您的代码可以减少为
var model_1 = document.getElementById('deal_trade_in_model_1');
var amount_1 = document.getElementById('deal_trade_in_amount_1');
if (Boolean(model_1.value) !== Boolean(amount_1.value)) {
model_1.value = "";
amount_1.value = "";
}
关于javascript - "If"合并/避免嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27995730/