使用JQuery获取输入框的值

3

我有100个名为table[]的输入框。如何使用jQuery将它们的值作为数组获取?

我想做类似于PHP中的$_POST ['table']

我尝试了以下代码,但我希望值是一个数组...

$("input[name='table[]']").each(function(){document.write($(this).val());});
4个回答

5
var arrInputValues = new Array();
$("input[name='table\\[\\]']").each(function(){
     arrInputValues.push($(this).val()); 
     // you can also use this
     //arrInputValues.push(this.value);
});

现在您的arrInputValues包含所有的值。
您还可以使用:
$("input[name='table[]']").each(function(){

您可以查看一个工作演示

您可以使用join()方法来连接数组中的值。

arrInputValues.join(',');

将数组元素作为字符串拼接,用,分隔。

document.write(arrInputValues) 输出 test1,test2 等等,这正常吗? - A.Angelov
谢谢! 如何取消它们的连接? 如果我通过PHP中的foreach处理字符串并将其插入DB,它会起作用吗? 您能看到我下面的答案吗? - A.Angelov
你可以使用逗号,来分割PHP中的字符串并获取值。但是在选择分隔符时必须小心,任何一个值都不应包含分隔符字符。 - rahul

3

以下代码可以获取每个输入框的

 var arr=new Array();
 $("input[name='table[]']").each(function()
 {  
    var val=$(this).attr('value');
    document.write(val);
    arr.Push(val);
 });

你能告诉我如何将所有元素的值作为数组获取吗? 谢谢! - A.Angelov

2

[ 和 ] 字符是特殊字符,需要进行转义

$("input[name='table\\[\\]']").each(function()
 {  document.write($(this).val());           });

好的,但如何将其作为数组获取? 现在它输出给我: test1test2test3test4........ 如何像这样获取: Array ( [0] => test1 [1] => test2 [2] => test3 [3] => test4 ) - A.Angelov

2
你需要转义[]字符,尝试使用以下代码:
$("input[name='table\\[\\]']").each(function()
 ...........

好的,但如何将其作为数组获取?现在输出的是:test1test2test3test4... 如何获得类似于Array([0] => test1 [1] => test2 [2] => test3 [3] => test4)的格式? - A.Angelov
@Angelov:$_POST['table']已经是一个数组了;你可以使用print_r($_POST['table'])来查看它的内容。 - Sarfraz
我没有解释清楚。 所有这一切的目的是要使用AJAX将输入值传递到另一个文件,然后在那里提交该值到数据库中。但是我必须使用foreach,因为它期望数组。foreach($_POST['table'] AS $data) { //插入到数据库中 } 我想在单击提交时不刷新页面就将其插入,这就是我使用AJAX的原因。 但是为了使提交到数据库发生,我必须使用AJAX将数据发送到另一个文件。这就是为什么我想在JS中创建数组。之后,我将对其进行序列化以获得所需结果。 - A.Angelov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接