php
  • jquery
  • 2012-01-11 53 views 1 likes 
    1

    我一直在嘗試獲取表單輸入元素的值,但我只是沒有任何運氣。在表格中獲取多個隱藏表單值的值

    我在PHP中的while循環中有以下形式,所以會有多種形式。

    <form method='POST' action=".$_SERVER['SCRIPT_NAME']." name='form_set_deadline' class='form_set_deadline'> 
        <input type='hidden' value='".$data3['unique_name']."' name='file_id' class='file_id' /> 
        <input type='hidden' value='".$user_id."' name='client_id' class='client_id' /> 
        <table> 
         <tr> 
          <td align='left'><input type='button' name='set_file_options' value='Submit' class='set_file_options' /></td> 
         </tr> 
        </table> 
    </form> 
    

    現在,我想獲取jQuery的隱藏字段的值,但不知道如何訪問隱藏的字段值。請記住,頁面上有多種這樣的表單。這裏是包含在一個函數內的jquery表單。

    function setFileOptions(){ 
        $('.set_file_options').each(function(e){ 
         $(this).unbind("click").click(function(e){ 
          e.preventDefault(); 
          //set form variables 
          var file_id = // DON'T KNOW HOW TO GET THE HIDDEN FIELD INPUT VALUE? 
    
          alert(file_id); 
         }); //END THIS CLICK FUNCTION 
        }); 
    } //END MAIN FUNCTION 
    

    感謝您的幫助/提示!

    因此之後,從大家收到的所有投入,我決定使用以下方法來獲取所有的表單數據:

    var form_data = $(this).closest('form').serialize(); 
    

    再次感謝!

    +0

    是'input'或'form'名稱獨特之處? – Biotox 2012-01-11 22:01:18

    +0

    有很多更優雅的方式來做到這一點!如何把一個簡單的按鈕元素(樣式與jQuery用戶界面)和內部傳遞變量的JavaScript,而不是用隱藏的表單元素塗鴉用戶界面。如果給出完整的上下文,也許我們可以清理它。 – bpeterson76 2012-01-11 22:06:00

    +0

    那麼,我有很多其他的表單元素,如textareas,文本輸入等,我試圖傳遞給JavaScript。 – user482520 2012-01-11 22:15:39

    回答

    3
    var file_id = $(this).closest('form').find('.file_id').val(); 
    

    另外,純JS的解決方案:

    var file_id = this.form.elements['form_id'].value; 
    

    一個選擇器選擇所有<input type="hidden"/>元素:

    var hiddens = $(this).closest('form').find(':hidden'); 
    //hiddens.eq(0) = file_id 
    //hiddens.eq(1) = client_id 
    

    如果你沒有什麼連接到你的類名都,我建議刪除這些屬性,並使用名稱 - 屬性選擇器:

    var file_id = $(this).closest('form').find('[name="file_id"]').val(); 
    
    +0

    甜蜜!這工作!我試過$(this).parent('form')。find('。file_id')。val();但這不起作用。無論如何,謝謝一堆! – user482520 2012-01-11 22:03:40

    +0

    @ user482520您應該使用'父母'從父項中選擇任何元素。既然你想選擇最接近的父親,你應該使用'最接近的'。另一種使用'parents'的語法是:'$(this).parents('form:first')'(稍微慢些)。 – 2012-01-11 22:05:41

    +0

    ^實際上你的解決方案也應該工作,如果你更換'。parent()'帶''.parents()'第二個遍歷dom樹,直到找到匹配的元素。雖然第一個只檢查直接父母:) – bardiir 2012-01-11 22:06:48

    0
    var file_id = $(this).closest('table').siblings('.file_id').val() 
    
    1

    試試這個,

    $(this).closest('form').find(':hidden'); //應該讓你的形式

    裏面的隱藏字段,而且有可能不止一個領域,所以你可能需要迭代把所有的隱藏字段,

    var field_val = []; 
    
    $.each ($(this).closest('form').find(':hidden'), function (index) { 
        field_val [$(this).attr('class')] = $(this).val(); 
    }); 
    
    0

    您試過了嗎:

    var file_id = $('input[name="file_id"]').val(); 
    
    0

    試試這個:

    var fileid = $(this).parents('form').find('.file_id').val(); 
    
    相關問題