如何使用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
文本开头的元素,然后使用每个循环所有元素以获取其值
更多信息:
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中有数组。(通常在处理元素的“数组”时,实际上会有一个节点列表,但这很少有很大的区别)。