我在本地主机服务器和实际的Web服务器上执行相同的代码,并且当特定值为null时,两者都给我不同的结果。
已截断的实际代码如下所示:
validate: function(attrs, options) {
var errors = [];
if (typeof(this.get('shipping_address.' + options.key)) !== 'undefined' && this.get('shipping_address.' + options.key).length > 0 && typeof(attrs.shipping_address[options.key]) !== 'undefined' && attrs.shipping_address[options.key].length == 0) {
console.log('trying to set an empty value key:' + options.key + " value " + this.get('shipping_address.' + options.key));
errors.push({
field: 'shipping_address',
key: options.key,
value: this.get('shipping_address.' + options.key)
});
return errors.length > 0 ? errors : false;
}
},
和显示不同结果的行是if语句的一部分,并且是以下内容:
this.get('shipping_address.' + options.key).length
attrs.shipping_address[options.key].length
P.S。 options.key是一组可能出现在表单上的字段名称的一部分,并且一个表单可以具有比另一个表单更多的字段。
当表单上不存在特定字段时,则返回的值为null;否则为false。但是,在localhost下,这两行都返回0。另一方面,Web服务器返回到两者,并随后引发“ Uncaught TypeError:无法读取null的'length'属性”。
我的问题是如何检查环境设置?我知道Javascript是浏览器端的处理程序,但我困惑于在同一浏览器下,本地主机和实际的Web服务器显示不同的结果并且表现不同。