Я выполняю один и тот же код на моем локальном сервере и на реальном веб-сервере, и оба дают разные результаты, когда конкретное значение равно нулю.
Фактический отсканированный код показан ниже:
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
PS options.key является частью набора имен полей, которые могут присутствовать в формеи в одной форме может быть больше полей, чем в другой.
Если в форме нет определенного поля, возвращаемое значение равно нулю;однако в localhost обе эти строки возвращают 0. С другой стороны, веб-сервер возвращается к обоим, а затем выдает «Uncaught TypeError: Невозможно прочитать свойство 'length' из null".
Мой вопрос: как проверить настройку среды?Я знаю, что Javascript - это обработка на стороне браузера, но я сбит с толку тем, что под одним и тем же браузером localhost и реальный веб-сервер показывают разные результаты и ведут себя по-разному.