Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript/jquery获取textbox数组值_Javascript_Jquery_Arrays - Fatal编程技术网

如何使用javascript/jquery获取textbox数组值

如何使用javascript/jquery获取textbox数组值,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一系列文本输入,如下所示: <input type="textbox" name="mobileno[]"><br> <input type="textbox" name="mobileno[]"><br> <input type="textbox" name="mobileno[]"><br> $('input[name="mobileno[]"]').each(function(){ alert($(this)

我有一系列文本输入,如下所示:

<input type="textbox" name="mobileno[]"><br>
<input type="textbox" name="mobileno[]"><br>
<input type="textbox" name="mobileno[]"><br>
$('input[name="mobileno[]"]').each(function(){
  alert($(this).val());
});



它们在运行时使用“添加更多”按钮生成

有没有一种方法可以使用jQuery获取文本输入值并将其传递到ajax请求中

我创建了一个ajax请求,但无法获取name=value模式中文本输入数组的值。

您可以这样做:

<input type="textbox" name="mobileno[]"><br>
<input type="textbox" name="mobileno[]"><br>
<input type="textbox" name="mobileno[]"><br>
$('input[name="mobileno[]"]').each(function(){
  alert($(this).val());
});
^=
查找名称
mobileno
文本开头的元素,然后使用每个循环所有元素以获取其值

更多信息:


首先:这不是一个“文本框数组”。HTML中没有数组这样的东西。只是多个文本框碰巧都有相同的名称,而该名称恰好在名称中有方括号。名称中的方括号在HTML中没有特殊含义。(PHP需要它们,但这完全是另一回事)

第二:
type=“textbox”
错误。只是
type=“text”
。幸运的是,它可以正常工作,因为
“text”
是浏览器在查找无效值(如
textbox
)时使用的默认值

如果需要以标准名称=值模式(用
&
分隔)获取表单的值,jQuery为表单提供
序列化
方法:

alert($("#your-form-id").serialize());
试试这个:

var text= new Array();
$("input[name='mobileno[]']").each(function(){
    text.push($(this).val());
});  
如果您警告变量文本,您将得到逗号分隔的输出

var data = $('input[name="mobileno[]"]').map(function(){
  return this.name + '=' + this.value;
}).get().join('&');
alert(data);
这将给您一个类似于
mobileno[]=value&mobileno[]=value&mobileno[]=value
的值。
然后可以在ajax请求中传递它。

textbox不是type属性的正确值。您只需要
type=“text”
。幸运的是,“text”是默认类型,而未知类型通常被视为默认类型,因此它在大多数浏览器中仍然可以工作。但这只是一个愉快的意外。不需要“从选择器开始”。使用选择器中的方括号是绝对有效的:
$('input[name=“mobileno[]”)
我不确定serialize()在这里是否有效,因为name属性的值是uri编码的,所以
[]
变成了
%5B%5D
。这有关系吗?我本以为这是一件好事。HTML中没有数组,但JavaScript中有数组。(通常在处理元素的“数组”时,实际上会有一个节点列表,但这很少有很大的区别)。