Я пытаюсь добавить класс ошибки в текстовое поле ввода, чтобы показать пользователю, что их вход недействителен.
В событии изменения я получаю ссылку на то, что, как я полагаю, является полем ввода и хранением его в переменной.
Вызов addClass для переменной не работает должным образом. У меня есть firebugged код и $ textBox - это правильное текстовое поле, поэтому я не уверен, чего здесь не хватает. У меня есть много входов, которые имеют класс «edit-budget-local», поэтому мне нужно настроить таргетинг на измененное текстовое поле. Благодарю.jQuery addClass не работает при добавлении к переменной «this» объекта
$("input.edit-budget-local").change(function() {
var $textBox = this;
var newValue = $textBox.value;
if (newValue.match(/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/) == null) {
$textBox.addClass("error");
}
});
Это не ошибка, это всего лишь деталь реализации (возможно, вы не согласны с этим). – R0MANARMY
@ R0MANARMY да, согласен, но в традиционной реализации он вернет TypeError: Результат выражения 'newValue' [undefined] не является объектом –
За исключением того, что в JS нет типов (действительно). и что-то вроде 'myObject.nonExistenValue =" foo "создает это значение и устанавливает его значение' 'foo" '. Лучше думать о объектах JS как ассоциативных массивах, чем о классах. – R0MANARMY