我真的想避免在这段代码中嵌套...
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)如果只填写其中一个,则用户单击“提交”,并且调用该部分函数,我想删除它们的值。
我尝试过做
的化合物&安培;&安培; (和)
和
但是,它可能无法正常工作。|| (或)
主要问题:摆脱嵌套的最佳方法是什么(我计划这样做两次,只是交换代码)最有效的方法是什么?我希望这可以在尽可能少的IF语句中完成。
请注意:如果你经常更改代码,我可能不知道你在说什么......请准备好教我或帮助我学习!
答案 0 :(得分:1)
听起来你只想做一些事情,如果其中一个字段是空的,但不是两个。假设两个元素都是文本字段,.value
将始终返回一个字符串。如果字符串为空,则将字符串转换为布尔值会导致false
,否则为true
。
所以
Boolean(deal_trade_in_model_1) === Boolean(deal_trade_in_amount_1)
如果两个字段都有值(两者都将转换为true
)或两个字段都为空(均转换为true
),则将为false
。
因此您的代码可以缩减为
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 = "";
}