嗨,我正在开发一个mvc4 jquery应用程序。我已经动态生成了隐藏字段,并且将一些值绑定(bind)到它,如下所示。
@foreach (var group in Model.detailsbyclientId) {
<tr>
<td> @group.clientName </td>
<td> @group.employeeId </td>
<td> @group.employeeName </td>
<td>@group.Nationality</td>
<td> @group.documentType </td>
<td scope="col">
<input type="button" class="btn btn-primary btn-cons" value="View Document" onclick="showDocumentData('@group.upld_Id');" />
</td>
<td id="Hi">@group.currentStatus</td>
<td><input type="hidden" id="Status" value="@group.currentStatus"/></td>
<td></td>
</tr>
}
在某些时间点,
@group.currentStatus
的值将为NotVerified。例如,如果我生成5行数据,则所有5行的值都将为NotVerified。在这种情况下,我想显示一些消息,否则什么也不显示。因此,只要数据的所有行都具有相同的值,那么我想显示一条消息。这是我的jquery函数,我使用了以下逻辑。var list = new Array();
$('input[type=hidden]').each(function (i, item) {
list.push($(item).val());
if(list[i]==list[i+1]) {
fun_toastr_notify('success', 'Please verify the document');
} else {
}
});
我无法比较每行数据。如果所有值都相同,那么我只想显示一次我的烤面包机消息。我应该在这里使用什么逻辑?先感谢您。
我现在尝试如下。
for(var i=0;i<list.length;i++) {
if(list[i]==list[i+1]) {
fun_toastr_notify('success', 'Please verify the documents');
}
}
现在我的问题是烤面包机消息将显示多次。如果所有元素相等,我只想显示一次。
最佳答案
您可能需要考虑将此逻辑放入生成 View 模型并输出标志以显示消息的代码中,而不是在渲染 View 时执行。
这大大简化了您的逻辑。一个例子:
public class YourModel {
public List<ClientDetails> detailsbyclientId {get;set;}
public bool AllClientsUnverified { get { return detailsbyclientId.All(client => client.currentStatus == "Unverified"); } }
}
然后在您的 View 中(在客户端
<script>
块内部)if (@Model.AllClientsUnverified) {
fun_toastr_notify('success', 'Please verify the documents');
}