我一直負責用我的技能,HTML/CSS/JavaScript的/ jQuery的根據這些要求來解決的代碼塊提交和顯示形式數據:使用Ajax在JavaScript
要求: - 使用AJAX通過add_user函數提交用戶輸入的數據。
- 您可以假定該服務將以200狀態響應。
- 當添加用戶服務使用值爲false的success屬性進行響應時,在窗體頂部顯示紅色錯誤。使用錯誤屬性作爲消息。
- 響應返回成功屬性時在用戶列表中顯示新用戶
- 當用戶輸入無效的電子郵件地址時突出顯示電子郵件輸入。此外,請以紅色顯示文字「請輸入有效的電子郵件地址」。
注意:該服務不會提供此驗證功能,並且會接受無效的電子郵件。
//example usage.
addUser('john', 'smith', function(response){
console.log('response is: ' + JSON.stringify(response));
});
/*
################################### DO NOT MODIFY BELOW THIS LINE ##########
############################################################################
*/
// Add user service wrapper.
function addUser(username, email, callback) {
var response;
if(username === "Error"){
response = JSON.stringify({
success: false,
error: "Error is not acceptable username."
});
} else {
response = JSON.stringify({
success: true,
user: {
username: username,
email: email
}
});
}
$.ajax({
url: '/echo/json/',
type: "post",
data: {
json: response
},
success: callback
});
};
以下HTML適用:
<h2>Add a User:</h2>
<form>
<input type="text" name="username" placeholder="name">
<input type="email" name="email" placeholder="email">
<button>add user</button>
</form>
<h2>Users:</h2>
<ul id="users"></ul>
CSS:
body {
font-family: Helvetica, Sans, Arial;
}
p, ul {
padding: 10px;
}
ul {
margin: 5px;
border: 2px dashed #999;
}
OK,希望你還在我身邊。我對面向對象的JavaScript以及jQuery,HTML和CSS有深入的理解。但是,我對AJAX的經驗很少,沒有JSON語法/應用程序的經驗。因此,這個項目的某些方面對我來說似乎很直接,我不相信我需要幫助來解決它們。 我已經知道如何正確地做的事包括:
- 以紅色顯示錯誤上述表單(檢索錯誤信息是一個不同的故事)
- 在無序列表部分顯示新用戶
- 突出顯示的電子郵件輸入輸入無效的電子郵件地址時(使用客戶端驗證)
我理解這個項目的重點提交和檢索是輸入數據,遇到的問題編輯表格。看起來好像函數addUser()首先定義了變量響應,其中包含'成功:布爾,錯誤:字符串'或'成功:布爾,用戶'鍵值對的'對象'的'字符串'數據類型版本:{用戶名:字符串,電子郵件:字符串}' - 這是我進入我的第一個麻煩區域的地方...
如果包含這些關鍵字:值對的對象用於確定是否驗證過程中發生錯誤,並檢索與用戶名和電子郵件相關的錯誤消息和字符串等數據,將它們保留爲實際對象而不是「字符串化」對象是有意義的。作爲字符串,我不知道如何訪問該對象的屬性的值。如果它們是對象,我可以簡單地用點符號引用它們並檢索它們的屬性值。 (即sampleObj.success或sampleObj.error)好像JavaScript函數(如eval()和JSON.parse())足以將這些字符串返回到適當的對象中,但我不知道如何正確實現這些函數。
我遇到的第二個主要問題涉及到.ajax()方法的jQuery調用。我對AJAX的運作有一個非常基本的理解,但這裏使用的語法讓我感到困惑。我知道數據{json:response}正在使用類型'post'發送到url:'/ echo/json /',但我不明白在發生這種情況後如何恢復數據。我也不明白'迴應'在這個過程中所指的是什麼。
最後,我不明白在$ .ajax()語句末尾使用回調函數,以及它如何與作爲點擊表單按鈕的結果的addUser()函數的初始調用相關輸入。我不明白它的目的,或者它將如何在語法上使用。
我知道這是一個相當複雜的項目,我可能會問很多。但是我花了好幾個小時花了好幾個小時,試圖用我自己的知識和現有的在線資源來理解這一點,但儘管我很勤奮,但並沒有走得很遠。我希望有人能幫助我理解這個例子。
A link to a live version of this project (jsfiddle.net)
// //編輯更新的鏈接的jsfiddle工作流程,以正確的jQuery選擇和附加功能顯示錯誤消息/用戶輸入:http://jsfiddle.net/brianjsullivan/5vv5w/
您可能希望看到[這](http://stackoverflow.com/questions/425095/ submit-form-using-ajax-and-jquery)以及[This](http://stackoverflow.com/questions/12715994/how-do-i-submit-form-data-using-jquery-ajax)。 –