3
问题:此代码未触发StartValidation function
。为什么?如何在Ajax.Begin表单中使用onBegin验证请求?
<html>
<head>
<script src="/Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#frmUp').find("input[type = 'submit']").click(function() {
$('#frmUp').submit();
});
});
function StartValidation() {
return true;
}
</script>
</head>
<body>
<div>
@using (Ajax.BeginForm("UploadRequestFile", "FileUpload", new AjaxOptions
{
HttpMethod = "POST",
OnBegin = "return StartValidation();"
}, new { id = "frmUp" }))
{
<input type="submit" name="Submit" value="Submit" />
}
</div>
</body>
</html>
运行标记
<form method="post" id="frmUp" data-ajax-method="POST"
data-ajax-begin="return StartValidation();" data-ajax="true"
action="/fileupload/UploadRequestFile?Length=10">
<input type="submit" value="Submit" name="Submit">
</form>
谢谢。有用。简明扼要。我也在提交表格。和'onBegin'说,无论发送哪个函数都会在调用请求之前调用。我可以知道,为什么我的代码无法工作?再次感谢。 –
您的代码不起作用,因为您没有将jquery.unobtrsuive-ajax.js脚本引用到您的页面。如果你不这样做,你认为Ajax.BeginForm助手会做什么?你看过生成的HTML吗?这只是一个简单的'
这是jquery.unotrbsusive.js脚本,它将分析DOM中由Ajax。*助手发出的HTML5 data- *属性,并订阅此表单的.submit事件并取消默认操作并发送AJAX请求,而不是序列化所有表单输入字段并将它们发送到服务器。浏览器停留在当前页面上。一旦包含此脚本,它不会再重定向到'/ FileUpload/UploadRequestFile'地址。 –