Jaydeep Shah Ответов: 1

Массовое добавление строки с помощью MVC и jquery


только первый ряд вставляют не каждый.

Что я уже пробовал:

@model MVCDemo.DAL.tbl_user

@{
    Layout = null;
    <script src="~/Scripts/jquery-3.1.0.min.js"></script>
}
<table id="dynamicTable1">
    <thead>
    <th>Id</th>
    <th>Name</th>
    <th>Password</th>
    <th>Conform Password</th>
    <th>Full Name</th>
    <th>Email</th>
    </thead>
    <tr id="0">
        <td><input type="text" id="txtuserid" /></td>
        <td><input type="text" id="txtuname" /></td>
        <td><input type="text" id="txtpass" /></td>
        <td><input type="text" id="txtcpass" /></td>
        <td><input type="text" id="txtfullname" /></td>
        <td><input type="text" id="txtemail" /></td>      
        <td><button class="remove">Remove</button></td>
    </tr>
</table>

<input type="button" id="addrow" value="Add New Row" />
<input type="button" onclick="insert();" value="Create" class="btn btn-default" />


<table class="samplerow" style="display:none">
    <tr id="fullrow">
        <td><input type="text" id="txtuserid" /></td>
        <td><input type="text" id="txtuname" /></td>
        <td><input type="text" id="txtpass" /></td>
        <td><input type="text" id="txtcpass" /></td>
        <td><input type="text" id="txtfullname" /></td>
        <td><input type="text" id="txtemail" /></td>      
        <td><button class="remove">Remove</button></td>
    </tr>
</table>

<script>
    jQuery(document).ready(function () {
        var id = 0;
        jQuery("#addrow").click(function () {
            id++;
            var row = jQuery('.samplerow tr').clone(true);
          
            row.appendTo('#dynamicTable1');
            return false;
        });

        $('.remove').on("click", function () {
            $(this).parents("tr").remove();
        });
    });



    var insert = function () {
        
        $("#fullrow").each(function () {
            $.ajax({
                url: '/bulkadd/Index',
                type: "POST",
                data: {
                 
                        UserID: $("#txtuserid").text(),
                        Username: $("#txtuname").val(),
                        Password: $("#txtpass").val(),
                        ConfirmPassword: $("#txtcpass").val(),
                        FullName: $("#txtfullname").val(),
                        EmailID: $("#txtemail").val(),
                    
                   },
                success: function (data) {
                    //  getalllist();
                },
                error: function (data) {
                    alert("Error in creating new User");
                }
            });

        });
    }
</script>

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Непонятный. Пожалуйста, объясните, в чем дело.

1 Ответов

Рейтинг:
1

Ehsan Sajjad

Это потому, что у вас есть недопустимый html, ваш каждый tr должен иметь уникальный идентификатор, поэтому вам нужно использовать класс, так как когда jquery разрешит примененный вами селектор, он просто сможет найти первую строку, поэтому измените html, чтобы добавить его как класс:

<table class="samplerow" style="display:none">
    <tbody><tr class="fullrow">
        <td><input type="text" id="txtuserid" /></td>
        <td><input type="text" id="txtuname" /></td>
        <td><input type="text" id="txtpass" /></td>
        <td><input type="text" id="txtcpass" /></td>
        <td><input type="text" id="txtfullname" /></td>
        <td><input type="text" id="txtemail" /></td>      
        <td><button class="remove">Remove</button></td>
    </tr>
</tbody></table>



а теперь в jquery примените селектор классов:

$(".fullrow").each(function () {

    // your code here
 });