2011-10-22 57 views
1

如何獲取輸入數組username值在jQuery變量usersjquery輸入數組形式ajax

<input type='text' name='username[]' class='users' value='test1' /> 
    <input type='text' name='username[]' class='users' value='test2' /> 
    <input type='text' name='username[]' class='users' value='test3' /> 

<div class='submit'>Submit</div> 

    <script type="text/javascript"> 
    $(function() { 

     $('.submit').click(function() { 

      var users = 
     var dataString = 'users=' + users; 

      $.ajax({ 
      type:'POST', 
      url:'users.php', 
      data: dataString, 
      success: function() { 


       } 
      }); 
     }); 


    }); 
    </script> 

回答

8

結賬jQuery.serialize()。它應該給你一組用戶名。

var users = $('input:text.users').serialize(); 

你可以偷懶但是具體還是與選擇:.usersinput.usersform .users將所有的工作,再加上幾個。

對於這個例子:

// users = 
username[]=test1&username[]=test2&username[]=test3 

其中,根據您的服務器端技術,將在請求中作爲關鍵的「用戶名」字符串數組來實現(PHP,例如)。

1

您可以使用map獲取數組:

// from inside the submit callback 
var users = $(this).find('.users').map(function(i, el) { 
    return el.value; 
}); 

演示(與控制檯打開運行):http://jsfiddle.net/ambiguous/w2RRW/

+0

感謝,但什麼是 '我' 和 '厄爾尼諾' 指什麼? – user892134

+0

i = index,el =元素 –

+0

@ user892134:請參閱Intersellar的評論或文檔:http://api.jquery.com/map/,並且您是否嘗試獲取數組或URL字符串?你的問題和代碼說不同的事情。 –

2
<script> 

     $(function() { 

      $('.submit').click(function() { 

       // Get data as array, ['Jon', 'Mike'] 
       var users = $('input[name="username[]"]').map(function(){ 
        return this.value; 
       }).get(); 

       $.ajax({ 
        type: 'POST', 
        url: 'users.php', 
        data: { 
         'username[]': users, 
         // other data 
        }, 
        success: function() { 

        } 
       }); 

      }); 

     }); 

    </script>