如何在javascript中为两个数组的每个循环使用一个?

时间:2015-02-22 05:16:32

标签: javascript arrays

在我的网络应用程序中,我有多个同名的文本框。使用按钮单击事件,它将动态添加文本框。用户输入电子邮件地址

以下javascript显示使用每个循环,它将保存用户在数据库中输入的所有电子邮件地址。

 function JavaScriptFunction() {   
 var arr = $("[name='multiple[]']");
 $.each(arr, function (i, item) { PageMethods.InsertContacts($(item).val(),"01132321","M0011", getValues_Success, getValues_Fail);
  });

这是我的网页

                        <div class="form-group multiple-form-group input-group">                           
                            <input type="text" name="multiple[]" class="form-control" />                          
                            <span class="input-group-btn">
                                <button type="button" class="btn btn-success btn-add">+</button>
                            </span>
                        </div>

                         <div class="form-group multiple-form-group input-group">                           
                            <input type="text" name="multiple[]Phone" class="form-control" />                          
                            <span class="input-group-btn">
                                <button type="button" class="btn btn-success btn-add">+</button>
                            </span>
                        </div>

                     <input type="button" onclick="JavaScriptFunction();" value="get Values" />   

代码隐藏方法

  [WebMethod]
public static string InsertContacts(string email ,string phone, string username)
{
    userDataHandler.InsertContacts(email, phone, username);
    return "success";
}

同样,用户添加电话号码。我想读取数组并将数据保存在数据库中。我可以在两个循环中读取数组并保存数据。但我想在一个循环中读取这两个数组并将数据保存在两列中。

我试过这样,但它不起作用。

var arr = $("[name='multiple[]']");
var arr2 = $("[name='multiple[]Phone']");

$.each(arr,arr2 function (i, item,item2) {
  PageMethods.InsertContacts($(item).val(),$(item2).val(),"M0011", getValues_Success, getValues_Fail);
});

3 个答案:

答案 0 :(得分:0)

如果长度相同,则可以在一个循环中进行。

var arr = $("[name='multiple[]']");
var arr2 = $("[name='multiple[]Phone']");

$.each(arr, function (i, item) {
  PageMethods.InsertContacts(arr[i].val(),arr2[i].val(),"M0011", getValues_Success, getValues_Fail);
});

如果长度不同,则使用两个循环

$.each([arr, arr2], function() {
    $.each(this, function(i, v) {
        // do something
    });
});

答案 1 :(得分:0)

这是我的html页面

<form roe="form" runat="server">
         <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" ScriptMode="Release" />

    <!--Header-->
    <UsersHeaderTP:UsersHeaderTN runat="server" ID="UserHeaderTN1" />

    <!--Page Content-->
    <div class="container1">
        <div class="row">
            <div class="container">
                <div class="stepwizard">
                    <div class="stepwizard-row setup-panel">
                        <div class="stepwizard-step">
                            <a href="#step-1" type="button" class="btn btn-primary btn-circle">1</a>
                            <p>Step 1</p>
                        </div>
                        <div class="stepwizard-step">
                            <a href="#step-2" type="button" class="btn btn-default btn-circle" disabled="disabled">2</a>
                            <p>Step 2</p>
                        </div>
                     <%--   <div class="stepwizard-step">
                            <a href="#step-3" type="button" class="btn btn-default btn-circle" disabled="disabled">3</a>
                            <p>Step 3</p>
                        </div>--%>
                    </div>
                </div>

                    <div class="row setup-content" id="step-1">
                        <div class="col-xs-12">
                            <div class="col-md-12">
                                <h3>Step 1</h3>


                             <div class="col-md-4">
                            <div class="contacts">
                                <label>Contacts:</label>

                                <div class="form-group multiple-form-group input-group">                           
                                    <input type="text" name="multiple[]" class="form-control" />                          
                                    <span class="input-group-btn">
                                        <button type="button" class="btn btn-success btn-add">+</button>
                                    </span>
                                </div>

                                 <div class="form-group multiple-form-group input-group">                           
                                    <input type="text" name="multiple[]Phone" class="form-control" />                          
                                    <span class="input-group-btn">
                                        <button type="button" class="btn btn-success btn-add">+</button>
                                    </span>
                                </div>

                             <input type="button" onclick="JavaScriptFunction();" value="get Values" />                              
                            </div>

                        </div>


                        </div>
                    </div>                      
            </div>
        </div>
    </div>
           <div id="div1"></div>
    <!-- Content -->
    <div class="container">

        <!-- Footer -->
        <footertp:footertn runat="server" id="HeaderTN1" />
    </div>
    </form>

答案 2 :(得分:0)

没有一个输入,使用按钮点击事件它会添加文本框。文本框名称相同。用户使用按钮单击事件输入添加电子邮件。

使用以下javascript,我保存了用户在每个文本框中输入的所有电子邮件地址。以同样的方式,用户添加电话号码。

 var arr = $("[name='multiple[]']");
    $.each(arr, function (i, item) {

   PageMethods.InsertContacts($(item).val(),"0111" ,"M0011", getValues_Success, getValues_Fail);
   });

以上代码有效。如你所见,我写了#34; 0111&#34;。在那里,我必须插入由用户添加的值。以下代码显示用户添加的电话号码,保存所有电话号码。

var arr2 = $("[name='multiple[]Phone']");
    $.each(arr2, function (i, item) {

    PageMethods.InsertPhone($(item).val(), "M0011", getValues_Success, getValues_Fail);
   });

我分开完成了这段代码。但我想将电子邮件和电话号码列表传递给一个mehtod。你能告诉我任何方法吗?