2009-10-20 82 views
0

當涉及到AJAX/JS,並且不知道具體的方法/功能時,我仍然有點綠色,以實現此任務。通過循環表單字段構建變量的值

如果多次詢問過類似的問題,請隨身攜帶,我希望這裏有足夠的信息來幫助您找到正確的答案。

大綱

我目前正在建設一個形式的特定頁面,用戶可以在其中做出amny頁的內容提出建議。

表單顯示在模式對話框內,允許用戶在不脫離所在頁面的情況下提出建議。

當然,我正在設計重複使用的代碼 - 一次寫入,多次使用 - 提供類似的表單顯示和提交方法,無需重新編寫代碼即可在網站的任何位置進行顯示和提交。

環境

該網站是一個IIS6服務器上託管,網頁是在ASP,並使用trusty, classic ASP FormMail script from BrainJar通過電子郵件發送表單數據。

問題

模態對話框工作一種享受,並使用this example from Nettuts+執行從模內提交。

Nettuts +腳本的構建方式是您需要定義構成表單的所有單個字段以傳遞給formmail腳本。

因此,每次你需要使用它時,你需要更新如何組合var dataString,這取決於你有多少caffine或有多少痛苦的用戶敲你的門讓你打開簡單的錯誤這可能需要幾個小時來診斷和糾正。

每個字段然後被編譯成稱爲dataString一個變量:

var dataString = 'name='+ name + '&email=' + email + '&phone=' + phone; 

的Ajax然後踢,並且將數據提交給腳本,並根據結果成功消息將出現在限定的div內:

$.ajax({ 
    type: "POST", 
    url: "/_global/assets/scripts/formmail/formmail.asp", 
    data: dataString, 
    success: function() { 
    $('#contact_form').html("<div id='message'></div>"); 
    $('#message').html("<h2>Suggestion received</h2>") 
    .append("<p>Thanks, your suggestion has been received and 
    will be actioned as soon as possible.</p>") 
    .hide() 
    .fadeIn(1500, function() { 
     $('#message').append("<img id='checkmark' src='images/check.png' />"); 
    }); 
    } 
.... 

期望結果

使這一段代碼全局可再利用,一個d使用循環填充表單中所有字段名稱和值的var dataString

所以,我的同伴們 - 請指出這個n00b在正確的方向,並幫助我找到我尋求的答案。不勝感激您的幫助。

回答

1

呃 - 你是否想用$('#contact_form').serialize(),你可以在data:之後附加,所以結果是data: $('#contact_form').serialize()或者我誤解了你的問題措辭?

+0

謝謝,正是這個新手是需要了解的功能: docs.jquery.com/Ajax/serialize 和雙感謝你超快速響應過,像閃電一樣。 – thewinchester 2009-10-20 05:57:33