一段时间以来,我一直试图让 MVC Jquery 不显眼的错误处理与 twitter 引导程序一起工作。它的重点是我要么编辑 jquery.validate 要么在 document.ready 上做一些破解和斜线。
为了让不显眼的错误处理与 Bootstrap 和 MVC 一起工作,我需要将其添加到“控制组”类中的“错误”类。除此之外,“错误”类被附加到输入中。
我想知道社区中是否有人已经找到了解决方案。
例如
典型的引导标记会像这样......
<div class="control-group">
<label for="Username">Username</label>
<div class="controls">
<input data-val="true" data-val-required="Username is required" id="Username" name="Username" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="Username" data-valmsg-replace="true"></span>
</div>
</div>
当 jquery.validate unobtrusive 触发时模糊会发生什么......它将变为以下
<div class="control-group error">
<label for="Username">Username</label>
<div class="controls">
<input data-val="true" data-val-required="Username is required" id="Username" name="Username" type="text" value="" />
<span class="field-validation-valid help-inline" data-valmsg-for="Username" data-valmsg-replace="true"></span>
</div>
</div>
要使其在回发/提交中起作用,您可以执行以下操作...
//twitter bootstrap on post
$(function () {
$('span.field-validation-valid, span.field-validation-error').each(function () {
$(this).addClass('help-inline');
});
$('form').submit(function () {
if ($(this).valid()) {
$(this).find('div.control-group').each(function () {
if ($(this).find('span.field-validation-error').length == 0) {
$(this).removeClass('error');
}
});
}
else {
$(this).find('div.control-group').each(function () {
if ($(this).find('span.field-validation-error').length > 0) {
$(this).addClass('error');
}
});
}
});
$('form').each(function () {
$(this).find('div.control-group').each(function () {
if ($(this).find('span.field-validation-error').length > 0) {
$(this).addClass('error');
}
});
});
});
但是,在模糊时,它不会像您期望的那样工作。我不想编辑引导 CSS 或 Jquery.validate 文件,因为它们可能会在某个时候推出更新。
我会创建一个委托,还是绑定到 jquery 函数并从那里开始工作。这是我不熟悉的深层 JS 代码,但随着时间的推移,我可以通过它来解决问题。
有谁知道我会从哪里开始解决这个问题,或者知道它在哪里实施/讨论过?