我有一个变量,该变量可旋转一个空对象,因此我需要验证此变量是否具有值。
guardar: function() {
var value1 = Ext.getCmp('radio1').getValue();
if (value1 === {}) {
alert('It is necessary to select an option.');
return;
}
}
当变量到达If语句中的调试行时,尽管变量的值为{},但在评估条件时结果为false。
有人可以帮助我进行验证吗?
答案 0 :(得分:0)
如果获得了对象,那么是否需要处理该对象以验证是否存在属性 试试这个:
guardar: function() {
var value1 = Ext.getCmp('radio1').getValue();
if (typeof value1 === 'object' && Object.keys(value1).length === 0) {
alert('It is necessary to select an option.');
return;
}
}
答案 1 :(得分:0)
您不能执行value1 === {}
的原因是{} === {}
为假。原因是javascript通过引用而不是按值比较对象。这意味着它将检查对象是否占用相同的内存位置。
您可以尝试
Object.prototype.isEmpty = function() {
for(var key in this) {
if(this.hasOwnProperty(key))
return false;
}
return true;
}
然后您可以测试它是否为空
if (value1.isEmpty()) {
alert('It is necessary to select an option.');
return;
}
答案 2 :(得分:0)
function isEmpty(obj) {
for(var key in obj) {
if(obj.hasOwnProperty(key)){
return false;
}
}
return true;
}
var x = {};
if(isEmpty(x)){
alert('It is necessary to select an option.');
return;
}else{
}
答案 3 :(得分:0)
guardar: function() {
var value1 = Ext.getCmp('radio1').getValue();
if (Object.keys(value1).length === 0) {
alert('It is necessary to select an option.');
return;
}
} // This Will Work as your requirement