我在视图中使用ajax.beginform。
@using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post))
{
<table>
<tr>
<td>
<input type="text" id="txtCardNumber">
</td>
<td>
<button id="Search"/>
</td>
</tr>
</table>
}
在搜索按钮上单击而不是直接转到HTTPPost上的控制器我想首先对卡号进行一些客户端验证,如检查是否有数字和其他自定义验证。如果任何验证失败,我不想去服务器端。 所以我试着做返回假,但它挂了很长时间而不是瞬间。我尝试了event.preventdefault,但我无法撤消它并转到服务器端,并使用正确的值传递模型值。
$("#Search").button({.live("click", function (event) {
var isvalid = SubmitValidations();
if (isvalid) {
//show progress bar
return true;
} else {
event.preventDefault();
alert("Please correct the errors on the screen before proceeding.");
return false;
}
});
如果客户端验证成功,如何进行自定义客户端验证并转到服务器端。
答案 0 :(得分:0)
live已被弃用。你的第一行应该是
$('#Search').on('click', function(event) {
也尝试从代码中删除返回。
答案 1 :(得分:0)
我更改了辅助方法,以指定我可以使用jQuery挂钩的ID:
@using (@Html.BeginForm("ActionName","ControllerName",FormMethod.Post, new {id = "submitForm"}))
{
//...
}
然后是jQuery:
$('#submitForm').submit(function () {
return validateFields(self);//false stops POST, true continues POST
});