填写用户表格验证?

时间:2015-04-12 10:39:55

标签: javascript jquery asp.net-mvc validation

我目前有一个用户形式

@using (Html.BeginForm("Iflexcst", "Costing", FormMethod.Post, new { onsubmit = "return (checkForm(this) && false);" }))
{
            <label for="NUM">Number of Sets:</label>
            <br>
            <input class="foo" id="NUM" type="text" value=@ViewBag.Quantity name="Quan" />

        <label for="CS"> Cost</label>

        <br>
        <input class="foo" id="CS" type="number" value=@ViewBag.result />


        <input type="submit" value="Cost" />

我按下提交按钮后验证的javascript

<script type="text/javascript">

    function checkForm(form) {
        if (form.Quan.value == "") {
            alert("Error: Username cannot be blank!");
            form.username.focus();
            return false;
        }
        re = /^\w+$/;

    }

</script>

我希望userform在执行验证后不向控制器提交数据,因为我的jquery当前返回消息但仍然进入控制器函数,如果NUM为空则发送错误。

如果以上是一个简单的解决方案,那么在填写表格时也可以让它进行验证,例如,如果用户输入一个数字&lt; 10表格会立即显示弹出窗口并且不会让您提交,直到此错误得到修复?

1 个答案:

答案 0 :(得分:0)

问题出在您的javascript行

form.username.focus();

因为名称“username”中没有元素所以当语句

if (form.Quan.value == "")

得到真实你试图集中一个你的表单中不存在的html元素,所以在返回false行被触发之前,浏览器返回一个未被捕获的引用异常,表单转到控制器。

要解决此问题,请删除以下行

 form.username.focus();

或将其更改为

 form.Quan.focus();

如果它是空的并且表单不会转到控制器,它将聚焦Quan文本框。