JavaScript 验证和 cookie

JavaScript validation and cookies

我目前在 JavaScript class,我的最后一项任务是编写代码来验证预订申请表并创建 cookie。我在作业中得到了一半的分数,因为我的代码没有 100% 正确地工作,我知道情况就是这样。代码中发生的事情是当我刷新页面而不将信息放入文本框时,它对我大喊说 "this information is required",但是当我填写一些必填信息并将其余部分留空时,它仍然会转到"thank you for your request" 页。

这是我的 javascript 代码:

$(document).ready(function() {
var emailPattern = /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b/;   
$(":text, #arrival_date, #nights, #name, #email, #phone").after("<span class='error'>*</span>");
$("#reservation_form").submit(
    function(event) {
        var isValid = true;
            $("#arrival_date").focus();
        // validate the requested arrival date
            if ($("#arrival_date").val() == "") {
                $("#arrival_date").next().text("This field is required.");
                isValid = false;
            } 
            else {
                //                       store arrival date in cookie   wds 7/13/2013
                setCookie("guestdate",$("#arrival_date").val(),365);
                $("#arrival_date").next().text(""); 
            }
            // validate the requested arrival nights
            if ($("#nights").val() == "") {
                $("#nights").next().text("This field is required.");
                isValid = false;
            } 
            else {
                setCookie("guestnights",$("#nights").val(),365);
                $("#nights").next().text(""); 
            }
            // validate the requested name
            if ($("#name").val() == "") {
                $("#name").next().text("This field is required.");
                isValid = false;
            }
            else {
                setCookie("guestname",$("#name").val(),365);
                $("#name").next().text("");
            }
            // validate the requested email
            if ($("#email").val() == "") {
                $("#email").next().text("This field is required.");
                isValid = false;
            }
            else {
                setCookie("guestemail",$("#email").val(),365);
                $("#email").next().text("");
            }
            // validate the requested phone number
            if ($("#phone").val() == "") {
                $("#phone").next().text("This field is required.");
                isValid = false;
            }
            else {
                setCookie("guestphone",$("#phone").val(),365);
                $("#phone").next().text("");
            }
            if (isValid == false) {
            event.preventDefault(); 
            }
    } // end function
); // end submit
}); // end ready 

我的教授从来没有告诉我我做错了什么,下周我还有另一个与此非常相似的作业。她在我的反馈中只说了 "I see validation code but when I run the program none of it works"。她也没有 post 作业后的答案,这令人沮丧。任何帮助都会很棒!

检查此更新 fiddle。 https://jsfiddle.net/xjr3ro6k/4/ 使用 jquery 验证插件时,您可以将规则传递给表单选择器验证方法,如下所示:

$( "#reservation_form" ).validate({
  rules: {
    field: {
      required: true
    }
  }
});

或者您可以简单地在该特定标记中添加 required 和 运行 将验证方法添加到表单选择器,如本例 http://jqueryvalidation.org/files/demo/ 您可以浏览这些演示并了解有关此插件的更多信息。

继续学习。