gpt4 book ai didi

asp.net-mvc-3 - 在 ajax post 之前使用 unobtrusive 进行验证

转载 作者:行者123 更新时间:2023-12-03 22:55:11 26 4
gpt4 key购买 nike

所以我一直在玩弄防伪 token ,making progress谢谢你们。

我已经找到了一个解决方案来合并表单值,并让我的 ActionMethods 不会在 AntiForgery token 上呕吐...不幸的是,我在此过程中破坏了验证。 AJAX post 在客户端验证之前触发/客户端验证被忽略。服务器端可以工作,但是我会在发布之前进行一些验证。这是我正在使用的代码。

$(document).ready(function () {
$('input[type=submit]').live("click", function (event) {
event.preventDefault();

// Form with the AntiForgeryToken in it
var _tokenForm = $(this).parents().find("#__AjaxAntiForgeryForm");

// Current Form we are using
var _currentForm = $(this).closest('form');

// Element to update passed in from AjaxOptions
var _updateElement = $(_currentForm).attr("data-ajax-update");

// Serialize the array
var arr = $(_currentForm).serializeArray();

//Merge TokenForm with the CurrentForm
$.merge(arr, $(_tokenForm).serializeArray());


// The AJAX Form Post stuff
$.ajax({
type: "POST",
url: $(_currentForm).attr('action'),
data: arr,
success: function (data) {
$(_updateElement).html(data);
}
});

return false;
});

});

所以我认为我需要在 $.ajax goo 之前以某种方式处理客户端验证...任何建议可能会节省我一些时间。

最佳答案

调用此:

var formValid = $("#FormId").validate().form();

if (!formValid) return false;

添加到您的代码中:

$(document).ready(function () {
$('input[type=submit]').live("click", function (event) {
event.preventDefault();

// Form with the AntiForgeryToken in it
var _tokenForm = $(this).parents().find("#__AjaxAntiForgeryForm");

// Current Form we are using
var _currentForm = $(this).closest('form');

var isValid = $(_currentForm).validate().form();

if (!isValid) return false;

// Element to update passed in from AjaxOptions
var _updateElement = $(_currentForm).attr("data-ajax-update");

// Serialize the array
var arr = $(_currentForm).serializeArray();

//Merge TokenForm with the CurrentForm
$.merge(arr, $(_tokenForm).serializeArray());


// The AJAX Form Post stuff
$.ajax({
type: "POST",
url: $(_currentForm).attr('action'),
data: arr,
success: function (data) {
$(_updateElement).html(data);
}
});

return false;
});
});

关于asp.net-mvc-3 - 在 ajax post 之前使用 unobtrusive 进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7272232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com