我找不到答案。所以,我希望這不是多餘的..
有一個簡單的表單元素:
<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