javascript - 用jquery获取数组的值

标签 javascript jquery arrays forms

假设我有这个表格:

    <form method="post" name="b" >
<table>
    <tr>
        <td>Field A</td>
        <td><input type='text' name='field[0][a]' id='field[0][a]'></td>
        <td>Field B</td>
        <td><textarea name='field[0][b]' id='field[0][b]'></textarea></td>
        <td><button>remove</button></td>
    </tr>
</table>
</div>
<div id="container"></div>
<button id="mybutton">add form</button>

<div align="center">
<p><button onClick="dadosFormulario()" value="Registar" name="registar">Registo</button></p>
</div>
</form>

我有一个 jquery 函数,当我单击“添加表单”按钮时,它会复制我的输入。因此,关于这一点,我正在尝试使用 jquery 的 .val() 方法保存输入的值。

所以,如果我有这样的输入:

<input type='text' name='teste' id='teste'>

我知道这个:

var v = $('#teste').val();

我可以得到她的值(value)。但是,如果我有一个输入数组,这就是我的情况,因为我可以复制表单的字段,我如何从以下输入中获取多个值?

<input type='text' name='field[0][a]' id='field[0][a]'>
<input type='text' name='field[0][b]' id='field[0][b]'>

var v = $('#field[iterator][a]').val();不会工作,它会导致“未定义”。

jquery 函数,我无法使用 val() 从输入中获取值;给出未定义的:

$countForms = 1;

    (function($){

          $.fn.addForms = function(idform){

                        var myform = "<table>"+
                         "  <tr>"+
                         "     <td>Field A ("+$countForms+"):</td>"+
                         "     <td><input type='text' name='field\\["+$countForms+"\\]\\[a\\]'></td>"+
                         "     <td>Field B ("+$countForms+"):</td>"+
                         "     <td><textarea name='field["+$countForms+"]['b']'></textarea></td>"+
                         "     <td><button>remove</button></td>"+
                         "  </tr>"+
                         "</table>";


                        if(idform=='mybutton'){

                            myform = $(myform);
                            $("button", $(myform)).click(function(){ $(this).parent().parent().remove(); });
                            $(this).append(myform);
                            $countForms++;
                        }


          };
    })(jQuery);

    $(function(){
        $("#mybutton").bind("click", function(e){
        e.preventDefault();
        var idform=this.id;

            if($countForms<3){
                $("#container").addForms(idform);
            }       
        });
    });

最佳答案

方括号在jQuery选择器中使用,我们应该使用转义字符将方括号包含在控件的id中;

Live Demo

iterator = 0;
$('#field\\['+iterator +'\\]\\[a\\]').val();​

关于javascript - 用jquery获取数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11457327/

相关文章:

javascript - 在 javascript 中创建嵌套的 dom 节点时遇到问题

jQuery show() for Twitter Bootstrap css class hidden

javascript - 二维中点分割逻辑

在 Win7 上使用 IE11 的 Javascript 运行时错误 : Unable to set property 'disabled' of undefined or null reference

javascript - 精确的正则表达式 "namespaces"

javascript - 不滚动的延迟加载

javascript - 简单的 JS 数组 `concat` 说明

php - 简单的array_diff不起作用

javascript - 在自定义 React 元素上添加样式属性似乎不起作用

javascript - jquery如何获取所有行值的总和