获得与jquery阵列的值(Obtain values of array with jquery)

2019-10-17 00:09发布

比方说,我有这样的形式:

    <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>

和我有复制该输入I具有当我点击“添加形式”按钮一个jquery功能。 所以,关于这一点,我正在尝试使用jQuery的.VAL()方法保存的输入值。

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

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

我知道这一点:

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

我可以接受她的价值。 但是,如果我有输入数组,这是我的情况,因为我可以复制表单的字段,我怎么可以从下面的输入获得的多个值吗?

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

。VAR V = $( '#字段[迭代] [A]')VAL(); 将无法正常工作,它会导致“未定义”。

jQuery函数,其中i不能与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);
            }       
        });
    });

Answer 1:

方括号在jQuery选择使用,并且我们应该使用转义字符,包括在控制的ID的方括号;

现场演示

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


Answer 2:

字符“[”是不是在jQuery选择中性:

$('#field[0][a]')是指:“选择具有ID的项目‘场’,并且还具有命名为‘0’的属性,并命名为‘A’的另一个属性”

您可以 :

  • 要么改变自己的方式给一个id你的领域里,如: id="field_0_a" ,因而有$('#field_0_a')正常工作,
  • 或按名称选择项目: $('[name="field[0][a]"]')
  • 还是喜欢阿迪尔说


Answer 3:

添加一个类来输入和做到这一点

jQuery(document).ready(function($){
  $('.inputs').each(function(index, object){
    console.log($(object).val());
  });
});

在你的代码,你需要改变位置:

var v = $('#field[iterator][a]').val();

至:

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


Answer 4:

问题是,你必须转义特殊字符如下所示:

$('[id="field[' + iterator + '][b]"]').val();
要么
$('#field\\[' + iterator + '\\]\\[b\\]').val();
演示



文章来源: Obtain values of array with jquery