繁体   English   中英

ASP.NET MVC 3剃刀视图中的jQuery自定义验证

[英]jQuery custom validation in asp.net mvc 3 razor view

我对JS / jQuery有非常基本的了解。 我需要检查某些文本框的值。 该示例仅重现了我在一个更大的真实应用程序中遇到的问题,并且该表是基于数据库中的数据动态创建的,因此在运行时,我添加了基于jQuery逻辑的类。

这是jsfiddle示例-http: //jsfiddle.net/Xhnbm/

我需要执行三种不同的检查-对于浮点数,字符串长度和浮点数,但是您可能会看到未执行验证,但我总是会遇到整数异常,即使您删除了整数检查,验证也无法正常工作,所以我想问题不在于函数本身,而在于其他地方。

感谢帮助。

聚苯乙烯

似乎如果不添加代码就无法提交问题。 所有代码都在jsfiddle示例中,但是由于我也需要在此处添加一些代码,因此我认为问题可能出在我声明可以执行检查的函数的方式中,还是在这里:

$('#submitDocument').click(function () {
            try {
                if ($(".checkString16").val().length > 16) {
                    throw "The text can be up to 16 symbols";
                } else if (!mathFunctions.isInt($(".checkULong").val())) {
                    throw "Insert integer";
                } else if (!mathFunctions.isFloat($(".checkFloat").val())) {
                    throw "Insert float";
                }
                validationResult = true;
            } catch (exc) {
                alert(exc)
                validationResult = false;
            }
            return validationResult;
        });

当我单击“提交”按钮时,我尝试执行验证。 但是,根本没有Js程序员,我不想指出错误的方向。

$('#submitDocument').click(function () {
        var validationResult = true;
            if ($(".checkString16 input[type='text']:first").val().length > 16) {
                validationResult=false;
            } else if (!mathFunctions.isInt($(".checkULong input[type='text']:first").val())) {
                validationResult=false;
            } else if (!mathFunctions.isFloat($(".checkFloat input[type='text']:first").val())) {
                validationResult=false;
            }
        return validationResult;
    });

这应该可以解决问题。 如果#submitDocument是输入类型='submit',并且您使用它提交表单,则应尝试以下方式:

$('#submitDocument').click(function (e) {
            if ($(".checkString16 input[type='text']:first").val().length > 16) {
                e.preventDefault();
            } else if (!mathFunctions.isInt($(".checkULong input[type='text']:first").val())) {
                e.preventDefault();
            } else if (!mathFunctions.isFloat($(".checkFloat input[type='text']:first").val())) {
                e.preventDefault();
            }
    });

e.preventDefault()会阻止“提交”按钮执行默认处理程序,即提交表单。

您始终可以使用$(“#formId”)。submit()从代码中手动提交表单。

PS。 确保您还在后面的代码中验证这些值,因为简单的jquery验证很容易实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM