C# 如何在mvc中处理多个文本框
我有一个模范人物C# 如何在mvc中处理多个文本框,c#,jquery,asp.net-mvc,validation,model-view-controller,C#,Jquery,Asp.net Mvc,Validation,Model View Controller,我有一个模范人物 [DisplayName("First Name")] [Required("This field is required")] public string FirstName { get; set; } [DisplayName("Last Name")] [Required("This field is required")] public string LastName { get; set; } [UmbracoDisplayLocalised("Title")]
[DisplayName("First Name")]
[Required("This field is required")]
public string FirstName { get; set; }
[DisplayName("Last Name")]
[Required("This field is required")]
public string LastName { get; set; }
[UmbracoDisplayLocalised("Title")]
public string Title { get; set; }
[DisplayName("Email")]
[Email("Please enter a valid email")]
[Required("This field is required")]
public string Email { get; set; }
该模型在以下视图中引用
<div class="fields" id="event_additional_attendee" style="display:none;">
<ul>
<li>
@Html.TextBoxFor(x => x.Email, new { placeholder = "Email Id" })
@Html.ValidationMessageFor(x => x.Email, "", new { @class = "required" })
</li>
<li>
@Html.TextBoxFor(x => x.FirstName, new { placeholder = "First Name" })
@Html.ValidationMessageFor(x => x.FirstName, "", new { @class = "required" })
</li>
<li>
@Html.TextBoxFor(x => x.LastName, new { placeholder = "Last Name" })
@Html.ValidationMessageFor(x => x.LastName, "", new { @class = "required" })
</li>
<li>
@Html.TextBoxFor(x => x.Title, new { placeholder = "Title" })
@Html.ValidationMessageFor(x => x.Title, "", new { @class = "required" })
</li>
</ul>
</div>
<div class="toplink">
<p><a href="#" id="plus1" onclick="addForms()">+ Add More</a></p>
<p><a href="#" id="minus1" onclick="removeForms()">- Remove </a></p>
</div>
</div>
-
@Html.TextBoxFor(x=>x.Email,新的{placeholder=“Email Id”})
@Html.ValidationMessageFor(x=>x.Email,“,new{@class=“required”})
-
@Html.TextBoxFor(x=>x.FirstName,新的{placeholder=“First Name”})
@Html.ValidationMessageFor(x=>x.FirstName,“,new{@class=“required”})
-
@TextBoxFor(x=>x.LastName,新的{placeholder=“LastName”})
@Html.ValidationMessageFor(x=>x.LastName,“,new{@class=“required”})
-
@TextBoxFor(x=>x.Title,新的{placeholder=“Title”})
@Html.ValidationMessageFor(x=>x.Title,“,new{@class=“required”})
每次单击AddMore链接时,上面提到的DOM结构都会使用模型属性重复,这是由Jquery处理的。因此,将生成具有相同名称的多个文本框。
我想知道如何分别验证(服务器端和客户端)每个文本框。我知道这个问题是重复的,但我找不到更好的解决方案。jQuery验证规则与每个控件的表单名称一起定义 在您的情况下,为新克隆的控件定义了相同的名称,这将为给定的控件名称触发匹配的规则 要单独验证每个文本框,请使用 以编程方式触发元素验证
var validator = $( "#myform" ).validate();
validator.element( "#myselect" ); // validate individual
我有与您相同的代码: 此代码为html:
<div class="grid-4"><div class="form-label"><label>Rooms</label>@Html.DropDownList("Room", new SelectList(Model.Rooms))</div></div>
Rooms@Html.DropDownList(“房间”,新选择列表(模型房间))
这段代码是:
<script type="text/javascript">
$(document).ready(function() {
$('#Room').change(function(){
var valueRoomId = $.trim($("#Room").val()).toString();
$("#ol").empty();
if(valueRoomId >= "2") {
for (var i = 2; i <= valueRoomId; i++) {
$("#ol").append("<div class='grid-4'><div class='form-label'><label></label><h4>Room" + i + "</h4>");
$("#ol").append("<div class='grid-4'>" +
"<div class='formErrorContent' style='color: red;float: right;' " +
"data-valmsg-for='Adults_" + i + "' data-valmsg-replace='true'></div>" +
"<div class='form-label'><label>Adults</label><select class='required' " +
"data-val-required='This field is required.'" +
"name='Adults_" + i + "' id='Adults_" + i + "'>" +
"<option value=''>---Select Adults---</option>" + "@Html.Raw(adults.ToString())" + "</select></div></div>");
$("#ol").append("<div class='grid-4 last-grid'>" +
"<div class='formErrorContent' style='color: red;float: right;' " +
"data-valmsg-for='Childrens_" + i + "' data-valmsg-replace='true'></div>" +
"<div class='form-label'><label>Childrens</label><select class='required'" +
"data-val-required='This field is required.'" +
"name='Childrens_" + i + "' id='Childrens_" + i + "'>" +
"<option value=''>---Select Childrens---</option>" +
"@Html.Raw(childrens.ToString())" +
+ "</select></div></div>");
}
}
});
});
$(文档).ready(函数(){
$('#房间')。更改(功能(){
var valueRoomId=$.trim($(“#Room”).val()).toString();
$(“#ol”).empty();
如果(valueRoomId>=“2”){
对于(var i=2;i通过Visual Studio以强类型生成该视图。然后,它将自动为您验证所有视图,假设您提供了该模型。您将把所有重复输入放在一个表单中,并一次性提交它们吗?还是希望每组输入以单独的表单形式提交?在创建时如何创建元素在客户端克隆中单击“添加更多”
,或者调用ajax调用?是的,我想将所有输入拉到一个表单中,并在一个表单中提交它们time@MuraliMurugesan客户端内克隆