我創建了一些JavaScript來檢查用戶名是否已列在我的表單上的「選擇」框的選項中。它完美的工作,但我相當肯定,更好地利用jQuery必須有一個更好的方式。我嘗試過通過jQuery API,Google和StackOverflow進行搜索,並且似乎沒有找到任何指導。如果任何人都可以給我一些指點,將不勝感激。使用jQuery匹配選擇選項
這是我目前使用的工作代碼:
// CHECK IF THE USERNAME ALREADY EXISTS
var found = false;
var users = document.admin_form.user_list.options;
var num_users = users.length;
if (num_users != 0) {
var name_in_list;
var i = 0;
var name_chosen = $("[name=user_name]").val().toLowerCase();
while ((i < num_users) && !found) {
name_in_list = users[i].text.toLowerCase();
if (name_chosen == name_in_list) {
found = true;
}
i++;
}
}
if (found) {
$("#user_err").text("That USERNAME already exists, try again");
$("[name=user_name]").val("");
$("[name=user_name]").focus();
}
提前感謝!
從安全的角度來看,這個想法是可怕的,所以你知道。您實質上是向所有查看您網站的用戶提供了所有用戶名單。這使得對密碼執行暴力破解攻擊變得非常微不足道。請考慮使用ajax來實現此功能。 – loganfsmyth 2011-12-14 02:07:34
我不確定我完全理解「ajax」這個詞是指什麼,我基本上使用jQuery/JavaScript來驗證表單,當事情沒有問題時,我使用jQuery的「.post」函數將它發送到PHP函數插入到我的數據庫。此頁面還涉及驗證管理員進入該頁面以考慮安全性。最後,這是一個讓我瞭解這些事情的項目,我很欣賞我的方法學中的學習缺陷。 – MisterWeary 2011-12-14 02:26:23
我很高興聽到這是一般用戶至少無法訪問的。 AJAX是$ .post和$ .get做的。我主要擔心的是,您可以自由地將您的整個用戶列表提供給一般的登錄頁面,這會很糟糕。另外,雖然JavaScript中的這種邏輯不是世界末日,但您也應該確定這種相同的邏輯在PHP中是重複的,因爲您不能假定每個人都會打開javascript。 – loganfsmyth 2011-12-14 02:41:25