2012-02-10 86 views
0

下面是JSP页面的源代码。我不知道为什么我的验证框架不工作?jquery验证不起作用。这不是验证

任何机构都可以帮助我,并有经验。

每当我试图点击提交按钮而不点击选择单选按钮。它应该给我验证问题。但它不起作用。

不要在我的脚本中出错?

您能否检查一下并帮助我?

HTML代码:

<form method="post" id="identityVerification"> 
       <div class="error-message" id="error-message1" style="display:none;"> 
        <p id="err_cars" style="font-size:13px;"></p> 
        <p id="err_street" style="font-size:13px;"></p> 
       </div><br/> 
       <div> 
        <p style="padding-bottom:15px; font-size:13px;">Which of the following car is registered under your name in state of Washington?</p> 
           <input type="radio" name="questions[0].answer" value="Ford Focus" id="questions[0].answer_0"></input> 
           <label for="questions[0].answer_0">Ford Focus</label> 
           <input type="radio" name="questions[0].answer" value="Chevy Aveo" id="questions[0].answer_1"></input> 
           <label for="questions[0].answer_1">Chevy Aveo</label> 
           <div class="clear"></div> 
           <input type="radio" name="questions[0].answer" value="Toyota Celica" id="questions[0].answer_2"></input> 
           <label for="questions[0].answer_2">Toyota Celica</label> 
           <input type="radio" name="questions[0].answer" value="None of these" id="questions[0].answer_3"></input> 
           <label for="questions[0].answer_3">None of these</label> 
           <div class="clear"></div> 
       </div> 
       <br/><br/><br/><br/> 

       <div> 
        <p style="padding-bottom:15px; font-size:13px;">Which of the following street are you currently residing or have previously resided?</p> 
           <input type="radio" name="questions[1].answer" value="1 Grape Vine" id="questions[1].answer_0"></input> 
           <label for="questions[1].answer_0">1 Grape Vine</label> 
           <input type="radio" name="questions[1].answer" value="23 Main Street" id="questions[1].answer_1"></input> 
           <label for="questions[1].answer_1">23 Main Street</label> 
           <div class="clear"></div> 
           <input type="radio" name="questions[1].answer" value="87 Market Street" id="questions[1].answer_2"></input> 
           <label for="questions[1].answer_2">87 Market Street</label> 
           <input type="radio" name="questions[1].answer" value="None of these" id="questions[1].answer_3"></input> 
           <label for="questions[1].answer_3">None of these</label> 
           <div class="clear"></div> 
       </div> 
       <br/><br/><br/><br/> 
       <input type="submit" class="ButtonFirst" value="Submit" id="submitVerifyButton"> 
      </form> 

JavaScript代码:

$(document).ready(function() 
     { 
      validationRules = { 
        "cars": {required:true}, 
        "street": {required:true} 

       }, 
      validationMessages = { 
        "cars": "Please select car registered under your name", 
        "street": "Please select your residential street" 
       }; 
      $("#identityVerification").validate(
      { 
       rules: validationRules, 
       messages: validationMessages, 
       highlight: function(element) { 
        var id = element.id, 
        errorElement = $("#err_" + id), 
        errorContainer = errorElement.closest("div.error-message"); 
        $(element).addClass("error-message"); 
        errorContainer.show(); 
       }, 
       unhighlight: function(element) { 
        var id = element.id; 
        $(element).removeClass("error-message"); 
       }, 
       success: function(errorElement) 
       { 
        var errorContainer = errorElement.closest("div.error-message");   
        if(errorContainer.find("span:visible").length == 0) 
         errorContainer.hide(); 
       }, 
       errorElement: "span" 

      }); 
     }); 
+0

你介意只发布pur HTML源代码吗?所以你可以接触更多的用户,他们想要帮助你。对我们所有人来说都更容易。 – reporter 2012-02-10 12:49:57

+0

单独更新了HTML和java脚本代码 – 2012-02-10 13:02:22

回答

1

所以我测试了你的代码,我必须说你的代码工作正常。你犯了一个小错误。看看你的HTML代码,你会发现这样的事情:

<input type="radio" name="questions[1].answer" value="1 Grape Vine" id="questions[1].answer_0"></input> 

输入的字段已经把名字问题1。答问题[0]。答。在您的JavaScript代码中,您根据需要声明了名称为*street* and *cars*的广播组。所以它指向你的表单中未定义的字段。 Jquery不会给用户带来一个未定义的错误消息,所以看起来你的脚本不起作用。

如果您不相信我,请参阅here

+1

是的。名字是正确的。加上我发现的另一个问题是我在名称中使用[],而为jquery'[]'是特殊字符。所以当我试图做errorElement = $(“#err_”+ id)时,它会给出错误。所以为了克服这个我使用document.getElementById – 2012-02-10 17:27:24

0

我想你还没有包含在您的布局/页jquery.validation.js文件。尝试包括js文件。如果你没有使用jquery.validation,那么你应该使用它来进行客户端验证。签出以下链接了解更多详情。 http://docs.jquery.com/Plugins/Validation

+0

它包含在内。我们正在使用它很多地方 – 2012-02-10 13:43:46