Javascript 输入类型上的Jquery表单验证

Javascript 输入类型上的Jquery表单验证,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我目前有一个动态变化的表单。我使用的是所有文本输入,但它们都应该只接受数字 $("#result-form").validate({ rules: { .text: { required: true, digits: true } }, messages: {

我目前有一个动态变化的表单。我使用的是所有文本输入,但它们都应该只接受数字

    $("#result-form").validate({
            rules: {
                .text: {
                required: true,
                digits: true
                }
            },
            messages: {
                .text:{
                required: " Please enter a score!",
                digits: " Please only enter numbers!"
                }
            },
            submitHandler: function(form) {
                form.submit();
            }
        });

目前,我尝试使用上述方法进行验证,但这不起作用。有什么想法吗?

使用
名称
而不是

rules: {
   nameoftextbox: {
        required: true,
        digits: true
    }
}
要在类中使用它,请执行以下操作:

jQuery.validator.addClassRules("classname", {
  required: true,
  digits: true
});

您可以在输入标记中添加“必需数字”属性,并执行以下操作:

var validator = $( "#result-form" ).validate();
validator.form();
这还允许您具体选择所需的文本框。
为了进一步阅读,我建议你阅读

你不能这样做

$("#result-form").validate({
    rules: {
        .text: {  // <-- MUST only be a NAME attribute
            required: true,
            digits: true
        }
    },
    ....
工作演示:

注释

  • 必须在jQuery
    中包装
    .rules()
    。如果/每当选择器可能包含多个元素时,每个
    。如果未能执行此操作,则仅验证第一个匹配的元素

  • 必须确保考虑验证的所有表单输入元素都包含唯一的
    名称
    属性。这就是插件跟踪输入的方式。如果未能执行此操作,则仅验证第一个匹配的元素


旁注

你根本不需要这个

submitHandler: function(form) {
    form.submit();
} 
这已经是默认行为。实际上,
form.submit()
与插件中的代码相同。换句话说,在这种情况下,您不需要调用
submitHandler
。您只需要在需要超越或增强时使用它,例如使用
ajax()

来补充您的答案,如果您添加了

$('input[type="text"]').on('keyup', function(e) {
    $(e.target).valid();
});

您可以动态验证(第一次,只有在您单击“退出”或将注意力集中到其他元素后,输入才会被验证)

id可能会更改,因为我可以通过按页面上的按钮添加需要验证的元素。您的回答的前半部分在技术上是不正确的。不是
id
,不是
class
,也不是
名称以外的任何东西。该死!我一定是看错了文件。谢谢你的更正+1显示动态创建元素的代码。我已经尝试过这个方法,对初始元素有效,但创建的任何新元素都无法验证。你知道为什么吗?我目前正在使用您提供的链接中的代码。@adamcarlin,您必须在创建新元素后调用
rules()
方法。
$('input[type="text"]').on('keyup', function(e) {
    $(e.target).valid();
});