Javascript 用于查找步骤的JQuery父选择器
我使用的是jquery步骤控件。表单在Javascript 用于查找步骤的JQuery父选择器,javascript,jquery,html,asp.net-mvc,jquery-steps,Javascript,Jquery,Html,Asp.net Mvc,Jquery Steps,我使用的是jquery步骤控件。表单在onFinished()事件中发布,并触发Ajax请求。如果出现任何验证错误,我将从服务器返回以下信息: { "ErrorMessages": [{ "PropertyName":"Complainant.Address.StreetName", "ErrorMessage":"The complainant street name is required." },
onFinished()
事件中发布,并触发Ajax请求。如果出现任何验证错误,我将从服务器返回以下信息:
{
"ErrorMessages":
[{
"PropertyName":"Complainant.Address.StreetName",
"ErrorMessage":"The complainant street name is required."
},
{
"PropertyName":"Complainant.Address.Suburb",
"ErrorMessage":"The complainant suburb is required."
}]
}
接下来在jQuery中,我找到合适的span元素(它是用ASP.NET MVC的@Html.ValidationMessageFor
创建的),并给它提供验证消息:
if (response.ErrorMessages != null) {
for (var i = 0; i < response.ErrorMessages.length; i++) {
var validationSpan = $("span[data-valmsg-for='" + response.ErrorMessages[i].PropertyName + "'");
validationSpan.html(response.ErrorMessages[i].ErrorMessage);
validationSpan.removeClass("field-validation-valid");
validationSpan.addClass("field-validation-error");
}
}
我有以下html结构:
<div>
<h1>Complaint details</h1>
<section>
<div class="step-div" step="0">
<div class="form-group">
@Html.LabelFor(model => model.Complainant.Address.StreetName, new { @class = "col-md-3 control-label" })
<div class="col-md-8">
@Html.TextBoxFor(model => model.Complainant.Address.StreetName, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.Complainant.Address.StreetName)
</div>
</div>
</div>
</section>
<div>
这应该会给我直接在
中的
,但它似乎没有。如果我记录这个部分
变量,我会得到以下结果:
{ length: 0, prevObject: Object, context: HTMLDocument ? 134 }
呈现的
步骤2:
<a id="steps-uid-0-t-1" href="#steps-uid-0-h-1" aria-controls="steps-uid-0-p-1"><span class="number">2.</span> Complaint details</a>
尝试.parents()
而不是.parent()
。更好的方法是,尝试.closest()
.parents()
获取与给定选择器匹配的所有祖先
.parent()
只查找直接父对象
.closest()
查找元素本身和祖先以返回与给定选择器匹配的第一个元素。尝试.parents()
而不是.parent()
。更好的方法是,尝试.closest()
.parents()
获取与给定选择器匹配的所有祖先
.parent()
只查找直接父对象
.closest()
查找元素本身和祖先,以返回与给定选择器匹配的第一个元素。var section=validationSpan.closest(.step div”)代码>var section=validationSpan.closest(“.step div”)代码>
{ length: 0, prevObject: Object, context: HTMLDocument ? 134 }
<a id="steps-uid-0-t-0" href="#steps-uid-0-h-0" aria-controls="steps-uid-0-p-0"><span class="number">1.</span> Complainant details</a>
<a id="steps-uid-0-t-1" href="#steps-uid-0-h-1" aria-controls="steps-uid-0-p-1"><span class="number">2.</span> Complaint details</a>