【发布时间】:2015-10-08 14:41:55
【问题描述】:
我想在 MVC 的远程验证返回 true 后调用一个函数。但看起来我需要另一个事件来调用该函数。我试图在同一个 datepicker 元素上调用 onchange,但它们没有按正确的顺序调用。我想先调用验证,然后再调用 myFunction。
附:我也经历了 jquery.validate invalidHandler 但这似乎并没有解决问题。因为它还需要一些事件调用。
<span class="fgroup">
@Html.TextBoxFor(model => model.master.D1, new { @id = "datepicker" })
@Html.ValidationMessageFor(model => model.master.D1, "", new { @class = "text-danger" })
</span>
这是我想要在 远程验证 返回 true 后调用的函数:
function myFunction1() {
var datVal = $("#datepicker").val();
var url = "/TrM/AutoDocNoGen?date=" + datVal;
$.ajax({
data: datVal,
type: "GET",
url: url,
success: function (data) {
var formValid = $("#allSaveForm").validate().form();
if (!formValid) {
return false;
}
$(".vchrNoField").val(data.NewValue);
},
error: function () {
}
}); }
从 Ajax 调用返回后,我想更新该字段的值。首先调用验证并随后更新下面的此字段非常重要。
@Html.EditorFor(model => model.master.S1, new { htmlAttributes = new { @class = "text-input-grey vchrNoField" } })
【问题讨论】:
-
也许更容易删除
[Remote]属性并处理输入.blur()事件并进行自己的 ajax 调用(调用一种方法返回您需要的所有内容 - 即 isValid 值和 data.NewValue或在第一种方法成功时调用第二种方法)。您只需要更新自己的错误消息。 -
这似乎是唯一可行的选择。必须尝试并使其发挥作用。
标签: javascript jquery asp.net-mvc validation