Javascript jQuery验证不需要';我不能正常工作

Javascript jQuery验证不需要';我不能正常工作,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我在进行jQuery.Validation工作时遇到问题。我写了一个剧本。下面包含了所有JS文件。由于未知的原因,验证总是返回表单有效 以下是我的JS代码: $(document).ready(function() { $("#contactForm").validate({ rules: { inputName: "required", inputSurname: "required", input

我在进行jQuery.Validation工作时遇到问题。我写了一个剧本。下面包含了所有JS文件。由于未知的原因,验证总是返回表单有效

以下是我的JS代码:

$(document).ready(function()
{
    $("#contactForm").validate({
        rules: {
            inputName: "required",
            inputSurname: "required",
            inputEmail: {
                required: true,
                email: true
            },
            inputMessage: "required",
        },
        messages: {
            inputName: "Please enter your firstname",
            inputSurname: "Please enter your lastname",
            inputEmail: "Please enter a valid email address",
            inputMessage: "Please accept our policy"
        },
        submitHandler: function (form) {
            alert('valid form');
            form.submit();// for demo
            return false;      // for demo
        }
    })   
})
在这里您可以找到我的表格:

@using (Html.BeginForm("SendMail", "Home", FormMethod.Post, new { @class = "form-horizontal", role = "form", name = "contactForm", id = "contactForm" }))
            {
                @Html.ValidationSummary(true);
                @Html.AntiForgeryToken();
                <div class="col-lg-8">
                    <div id="Contact" class="jumbotron contact-form">
                        <div class="panel-heading">
                            <h1 class="panel-title">Kontakt</h1>
                        </div>
                        <div class="input-group">
                            <span class="input-group-addon">Imie</span>
                            @Html.TextBoxFor(model => model.name, new { @class = "form-control", placeholder = "Twoje imię", id = "inputName" })
                        </div>

                        <div class="input-group">
                            <span class="input-group-addon">Nazwisko</span>
                            @Html.TextBoxFor(model => model.surname, new { @class = "form-control", placeholder = "Twoje nazwisko", id = "inputSurname" })
                        </div>    
                        <div class="input-group">
                            <span class="input-group-addon">Email</span>
                            @Html.TextBoxFor(model => model.emailAdress, new { @class = "form-control", placeholder = "Adres email", id = "inputEmail" })  
                        </div>
                        <div class="input-group">
                            <span class="input-group-addon">Treść<br /> wiadomości</span>
                            @Html.TextAreaFor(model => model.body, new { @class = "form-control", placeholder = "Treść wiadomości", id = "inputMessage", name = "inputMessage", rows="4" })
                        </div>
                        <div class="form-group">
                            <div class="col-lg-offset-2 col-lg-1">
                                <button type="submit" class="btn btn-default">
                                    Send Message
                                </button>
                            </div>
                        </div>
                    </div>
                </div>
            }
@使用(Html.BeginForm(“SendMail”,“Home”,FormMethod.Post,new{@class=“form horizontal”,role=“form”,name=“contactForm”,id=“contactForm”}))
{
@Html.ValidationSummary(true);
@Html.AntiForgeryToken();
康塔克
伊米
@TextBoxFor(model=>model.name,新的{@class=“formcontrol”,placeholder=“Twoje-imię”,id=“inputName”})
纳兹维斯科
@Html.TextBoxFor(model=>model.name,新的{@class=“form control”,placeholder=“Twoje-nazwisko”,id=“inputNames”})
电子邮件
@Html.TextBoxFor(model=>model.emailAddress,新的{@class=“form control”,placeholder=“Adres email”,id=“inputEmail”})
特雷切奇
@Html.TextAreaFor(model=>model.body,新的{@class=“form control”,placeholder=“Treśćwiadomości”,id=“inputMessage”,name=“inputMessage”,rows=“4”})
发送消息
}
正如您所看到的,所有字段都是必填字段,但即使我将它们留空并按submit,jQuery也会告诉您表单是有效的


这里是jsidle和工作示例:

您必须设置
名称
而不是
id
。您必须为
名称设置规则
验证基于元素名称

试一试


您必须设置
名称
而不是
id
。您必须为
名称设置规则
验证基于元素名称

试一试


您需要调整rules对象以匹配表单元素的name属性

rules: {
        'name': {required:true},
        'surname': {required:true},
        'emailAdress': {
            required: true,
            email: true
        },
        'body': {required: true},
    }
在尝试Anto J Subash的版本时,由于大写,name属性的命名可能不匹配。 除了Anto J Subash的回答之外,我强烈建议传递字符串化的索引(“name”),并避免将其作为“name”传递,以防止由于JS/jQuery中保留关键字而可能出现的问题


工作

您需要调整规则对象以匹配表单元素的name属性

rules: {
        'name': {required:true},
        'surname': {required:true},
        'emailAdress': {
            required: true,
            email: true
        },
        'body': {required: true},
    }
在尝试Anto J Subash的版本时,由于大写,name属性的命名可能不匹配。 除了Anto J Subash的回答之外,我强烈建议传递字符串化的索引(“name”),并避免将其作为“name”传递,以防止由于JS/jQuery中保留关键字而可能出现的问题


正在工作

尝试将字段名称而不是ID放入规则中…传输的数据也是空的吗?可能占位符算作内容(我不熟悉你标记HTML的方式)尝试将字段名而不是ID放入规则中…传输的数据也是空的吗?可能占位符算作内容(我不熟悉您标记HTML的方式)