2013-07-12 14 views
0

我嘗試修改CMS的插件,並有形式檢測要求提交的表單的ID

其實我有系統產生輪詢發送選票,所有形式的這個問題:

<div class="sp-poll" id="poll-<?php echo $pollid; ?>"> 
    <p class="sp-question"> 
     <?php echo $question; ?> 
    </p> 
    <form method="post" action="<?php echo $postFile; ?>" id="spe_form-<?php echo $pollid; ?>"></form> 
</div> 

的JavaScript的過程:

jQuery(function() { 

    var $ = jQuery; // Because `$` is easier than using `jQuery` 
    $('.sp-poll form').submit(formProcess); // Access formProcess() when the poll is submitted 

    /** 
    * Form Process 
    * Process through the form 
    * 
    * @param object e 
    */ 
    function formProcess(e) { 

     e.preventDefault(); 

     var poll = $('input[name=poll]').val(), 
      answer = $('input[name=answer]:checked').val(), 
      div = $(this).parent(), 
      action = $(this).attr('action'); 

     $(this).slideUp('slow', function() { 
      updatePoll(action, poll, answer); 
     }); 
    } 
}); 

問題it's每種形式具有不同的ID,並且所述處理器僅檢測第一ID,例如,如果我有5種形式與型動物ID的所有時間只檢測一個某種形式的ID,但沒有其他的啓動進程表單時,我嘗試使用:

jQuery(".sp-poll form").attr(id); 

但總是檢測到同樣的號碼,並且沒有檢測各每個ID表格

PS:我需要發送表單ID屬性,因爲表單每次在頁面上創建輪詢時都會重複自身。我希望能夠使用它們的ID來檢測每種不同形式的數據以將它們整理出來。

+0

您可以創建一個名爲form-id的隱藏輸入,並在其中設置id值。但我不明白你爲什麼用JavaScript處理表單?你可以把它發佈到另一個php頁面,或者通過AJAX來完成。 – jeff

+0

是的問題是它的過程形式它在jquery中,因爲我把代碼的例子,並通過.sp輪詢形式檢測表單,但沒有發送ID和由此總是處理相同的形式,沒有其他人形式,我需要發送此ID或提取進程形式ID – user2536883

回答

1

使用HTML表單時,只有存儲在FORM FIELDS或URL中的信息纔會發送回服務器。元素ID與表單完全無關 - 它們用於UI操作。

如果您想要將表單ID傳遞迴服務器,請使用隱藏字段。

+0

我有隱藏的領域,但問題它有許多形式和處理器只檢測第一種形式沒有其他如果我發送形式,但處理器由阿賈克斯沒有檢測到ID表格總是發送相同的表格,沒有其他我需要發送表格的ID,但處理器使用類別,並添加表格編號 – user2536883

+0

閱讀此。這是一種更好的方式來提取您的表單數據比你在代碼中的方式。 http://api.jquery.com/serialize/ –

+0

問題它的插件有許多與同一類但不同id的表單,當啓動過程和許多表單在同一個頁面中時,由ajax提交的類提交表單檢測並且沒有檢測到真實的ID,以各種形式檢測到相同的$('。sp-poll form')。submit(formProcess); ,但它是不同的,沒有處理正確的形式 – user2536883