我找不到答案。所以,我希望这不是多余的..
有一个简单的表单元素:
<label>Email Address:</label>
<input type="text" onblur="validateEmail(this)" />
而且我运行一个验证脚本来检查这个输入值(的onblur)是否有效。很棒!
现在..我想要做的是保持脚本通用 - 所以我不必依靠类名或ID来使它工作。
所以我想知道的是如果该值不是电子邮件地址,该如何对此字段执行操作。具体来说,我想更改标签的颜色,并在该字段上放置红色边框。
下面是不起作用的脚本:
var inputTextTest = field.value;
var filter = /^((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*?)\s*;?\s*)+/;
if (filter.test(inputTextTest)) {
var name = field;
$(this).focus();
$(this).css("border","1px");
$(this).css("border-color","red");
} else {
$(this).css("border", "none");
}
我可以看到我为$(这)调用是行不通的。那么,如何在这个特定的领域采取行动,并保持脚本完全通用(即不依赖于特定的类或ID名称)?
非常感谢您的帮助!
你必须使用突兀的JavaScript? – eomeroff 2013-04-06 20:34:19
'this'的使用与目标元素是否具有名称无关。可以使用名称/ ID /类或者只是元素的类型进行选择,以便可以附加事件处理程序。在一个事件处理程序中,this指的是目标元素。如果选择器正确并且处理程序在适当的事件发生时运行,那么选择器**必须已经完成它的工作。 '这'不关心选择者允许处理程序被附加。也许是我,但这个问题没有意义。而且,问题的标题和文本似乎并不一致。 – 2013-04-06 21:21:50