我正在尝试向输入文本框添加错误类,以向用户显示其输入无效。
在更改事件中,我得到一个引用,我认为是输入字段并将其存储在变量中。
在变量上调用addClass不能按预期工作。我已经发现代码和$ textBox是正确的文本框,所以我不确定我在这里缺少什么。我有很多输入都有“编辑 - 预算 - 本地”类,所以我需要定位已更改的文本框。感谢。
$("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");
}
});
答案 0 :(得分:2)
尝试
$textBox = $(this);
虽然在ln 5处似乎存在一个错误(就使用jQuery而言),其中newValue应为$textBox.val();
答案 1 :(得分:1)
你这里有错误,
$textBox.addClass("error");
尝试这样,
$("textBox").addClass("error");
答案 2 :(得分:1)
如果您的选择器和正则表达式正确
,这应该有效$("input.edit-budget-local").change(function () {
var textBox = $(this);
var newValue = textBox.val();
if (newValue.match(/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/) == null) {
textBox.addClass("error");
}
});
答案 3 :(得分:0)
您需要更改此行:var $textBox = $(this);
,以便您实际缓存了jQuery对象的副本,而不仅仅是输入。
答案 4 :(得分:0)
返回的"this"
不是jQuery对象。尝试更换行
var $textBox = this;
与
var $textBox = $(this);