2

在我看来,我正在使用 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 上的控制器我想首先对卡号进行一些客户端验证,例如检查是否有数字和其他自定义验证。如果任何验证失败,我不想去服务器端。所以我尝试做return false,但它挂了很长时间而不是瞬时的。我尝试了 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;
    }
}); 

仅当客户端验证成功时,如何进行自定义客户端验证并转到服务器端。

4

2 回答 2

0

live 已被弃用。你的第一行应该是

$('#Search').on('click', function(event) {

也尝试从代码中删除返回。

于 2013-10-16T22:14:10.303 回答
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
        });
于 2014-05-16T20:27:50.667 回答