用于多个条件检查的 JavaScript 语法
JavaScript syntax for multiple condition checking
我想编写一个JS条件来禁用以下条件的保存按钮;
- 如果状态为"已关闭"或
- 如果我的模型没有UPDATE_GLOBAL和UPDATE_LOCAL权限
我编写了以下代码;
if ((self.model.get("status") === "CLOSED") || (!self.model.hasPrivilege("UPDATE_GLOBAL") && !self.model.hasPrivilege("UPDATE_LOCAL"))) {
$("#save").attr("disabled", true);
}
这是最佳优化代码吗?还有没有多余的括号(总是让我感到困惑)?
你说过
如果我的模型没有UPDATE_GLOBAL和UPDATE_LOCAL特权
。但这不是这部分条件所检查的。它正在检查您是否没有两者;如果只有一个,则检查结果不正确。
如果您希望在状态 = CLOSED 时禁用按钮,或者您的模型没有这两个权限,则:
if (self.model.get("status") === "CLOSED" || !(self.model.hasPrivilege("UPDATE_GLOBAL") && self.model.hasPrivilege("UPDATE_LOCAL"))) {
$("#save").attr("disabled", true);
}
还有没有多余的括号(总是让我感到困惑!!
是的,你不需要self.model.get("status") === "CLOSED"
周围的括号(但它们是无害的)。
另请注意,您的代码永远不会启用该按钮,它只是禁用它或将其保留。如果您还想在禁用条件不为 true 时启用它,则:
$("#save").attr("disabled", self.model.get("status") === "CLOSED" || !(self.model.hasPrivilege("UPDATE_GLOBAL") && self.model.hasPrivilege("UPDATE_LOCAL")));
或(更易于调试):
var flag = self.model.get("status") === "CLOSED" || !(self.model.hasPrivilege("UPDATE_GLOBAL") && self.model.hasPrivilege("UPDATE_LOCAL"));
$("#save").attr("disabled", flag);
我会这样说:
if (self.model.get("status") === "CLOSED" || !(self.model.hasPrivilege("UPDATE_GLOBAL") && self.model.hasPrivilege("UPDATE_LOCAL")))
相关文章:
- Javascript语法向设置发出sessionStorage值
- 函数的Javascript语法
- 如何定义const函数javascript(语法糖)
- Onclick不会启动..可能存在javascript语法问题
- 用jquery替换javascript语法
- 在Javascript语法中:和::和:::有什么区别
- 如何以编程方式查找javascript语法错误的位置
- 这个javascript语法有什么问题
- Chrome 中的 JSX/JavaScript 语法
- Javascript语法 - 我做错了什么
- 用于指定元素 ID 的正确 JavaScript 语法是什么
- 这是什么JavaScript语法
- 带有函数的 JavaScript 语法
- 剃刀中的javascript语法错误
- 解析云代码geoPoint查询Javascript语法
- 在Notepad++中更好地突出显示Javascript语法
- 通用Javascript语法查询
- Joomla2.5框架似乎干扰了javascript语法
- 点击切换Divs/JavaScript语法
- 用于将变量传递给函数的javascript语法