Divyay208 Ответов: 1

Как получить модальные данные в функции jquery при нажатии кнопки


У меня есть класс с элементами Подсписка, и я отображаю данные путем итерации для каждого цикла в моей таблице представления MVC,

Теперь мое требование заключается в том, что мне нужно обновить детали на основе выбора

но при каждом нажатии кнопки я получаю идентификатор первого элемента, если я выбираю элемент второй строки, то он также берет элемент первой строки из таблицы

и как получить элементы подсписка в jquery (в моем коде checkbox details from sublist)

любая помощь

заранее спасибо

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

 @foreach (var item in Model)
        {
            <tr>
                <td style="white-space:nowrap;">
                    @Html.HiddenFor(modelItem => item.ID, new { id = "ID" })
                    <span class="debtorVal">
                        <span id="CollectionName">@item.CollectionName </span>
                    </span>
                    
                   </td>
               @foreach (var CollectionRole in item.CollRole)
               {
                   if (CollectionRole.CollectionRole == "C")
                   {
                   
                    <td>@Html.CheckBoxFor(modelItem => CollectionRole.Checked)</td>
                   }
                   if (CollectionRole.CollectionRole == "C")
                   {
                    <td>@Html.CheckBoxFor(modelItem => CollectionRole.Checked)</td>
                   }
                   if (CollectionRole.CollectionRole == "M")
                   {
                    <td>@Html.CheckBoxFor(modelItem => CollectionRole.Checked)</td>
                   }
                   if (CollectionRole.CollectionRole == "R")
                   {
                    <td>@Html.CheckBoxFor(modelItem => CollectionRole.Checked)</td>
                   }               
               }
                <td>
                 
                    <input type="button" value="Assign" onclick="myfunction(this)" />
                   
                   
                  
                </td>
            </tr>
        }

    </table>
<script type="text/javascript">
 function myfunction(el)
 {
     var CollectionName = $("#CollectionName").text();
     var ID = $("#ID").val();
     alert(CollectionName);
     alert(ID);
   
 }
</script>

1 Ответов

Рейтинг:
2

Bryian Tan

Посмотрев на опубликованный код.

1. атрибут id для каждого элемента должен быть уникальным, но он был жестко закодирован как "ID" в цикле. Я думаю, что именно поэтому второй цикл не создал новый скрытый элемент управления, потому что ID уже существует.

@Html.HiddenFor(modelItem => item.ID, new { id = "ID" })


2. Самое простое исправление-передать идентификатор в myfunction, см. ниже

<input type="button" value="Assign" onclick="myfunction(@item.ID)" />


3. затем обновите код myfunction, чтобы использовать переменную id
function myfunction(id)
 {
     //var CollectionName = $("#CollectionName").text();
     //var ID = $("#ID").val();
     //alert(CollectionName);
     alert(id);
   
 }


4. я думаю, что та же проблема и с CollectionName возможно , Вам также потребуется обновить код, чтобы передать его в myfunction

<input type="button" value="Assign" onclick="myfunction(@item.ID, @item.CollectionName)" />


function myfunction(id, collectionName)
 {
     //var CollectionName = $("#CollectionName").text();
     //var ID = $("#ID").val();
     alert(collectionName);
     alert(id);
   
 }


Примечание: Я не проверял синтаксис. но, надеюсь, вы поймете, в чем дело.

javascript - как передать значение razor в функцию jquery в представлении mvc - переполнение стека[^]


Divyay208

Если я вызываю функцию, передавая параметры, то ее отсутствие означает, что функция не вызывается



функция myfunction(el)
{

alert(el);
}

Bryian Tan

Просьба поделиться кодом о том, как вызывается функция