Как проверить отсутствие ошибок в jquery .validate () - PullRequest
3 голосов
/ 05 декабря 2011

У меня проблемы с созданием кода, который должен отображать кнопку только в том случае, если все текстовые поля проверены правильно. Я скрываю кнопку, когда открывается страница (я знаю, что могу использовать css для этого, но я просто пытаюсь проработать функциональность), и я хочу показать кнопку, когда поля верны. Я пытаюсь использовать параметр успеха, но он просто показывает кнопку непосредственно перед тем, как что-либо заполнено. Какие-либо предложения? Вот код:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>  
<script type="text/javascript" src="js\jquery.validate.js"></script>
<script>
$(document).ready(function(){
var submit = false;
$(".btn").hide();
 $("#submission").validate({
   rules: {
      appSize: { 
         required:true,
         max:12 },
      appName: { 
         required:true,
         rangelength:[4,9] },
      appPrice: { 
         required:true,
         min:.99,
         max:3.99 },
      email: { 
         required:true,
         email:true }
   },

   messages: { 
      appSize: {
      required: "App Size is a required field"},
      appName: { 
         required: "App Name is a required field",
         rangelength: "The name must be between 4 and 9 characters" },
      appPrice: { 
         required: "App Price is a required field",
         min: "Price must be .99 or greater",
         max: "Price must be less than 3.99" },
      email: { 
         required: "email is a required field",
         email: "You must enter a valid email address" },
      success: submit = true

   },
   errorElement: "div",




 });
 if(submit)
    $(".btn").show();
 $(".btn").click(function() {

     alert("Data is Valid, Thanks for your submission");    
   });
});

</script>
</head>
<body>
<form id="submission" method="post" action="#">
  <h1>Apple iPhone App Contest Submission Page</h1>
    <div id="theForm">
        <div>
                 <label for="appSize">What is the file size in KB?</label>
                 <input name="appSize" type="text" id="fileSize" class="required error"></input>
        </div>
        <br />
        <div>
                 <label for="appName">What is the App Name?</label>
                 <input name="appName" type="text" id="appName" class="required error"></input>
        </div>
        <br />
         <div>
                 <label for="appPrice">What is the App Price?  $</label>
                 <input name="appPrice" type="text" id="appPrice" class="required error"></input>
        </div>
        <br />
        <div>
                 <label for="email">Submitters Email Address</label>
                 <input name="email" type="text" id="email" class="required error"></input>
        </div>
        <br /> 
       <input type="button" class="btn" value="Submit"></input>
     </div>
</form>
</body>
</html>

Ответы [ 3 ]

0 голосов
/ 05 декабря 2011

Ваш код кажется мне немного запутанным ... Как, по-вашему, вы могли бы отправить форму, если скрыли кнопку отправки?Я думаю, что вы могли бы связать какое-либо событие «onchange» со всеми входными данными вашей формы, чтобы вызвать проверку ... но это может означать, что вы получите проверку, даже если вы переходите от входа к другому во время их заполнения.

0 голосов
/ 14 декабря 2011

Мне действительно пришлось обойти оригинал, так как я не мог получить большую помощь.Вот мой окончательный проект:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="generator" content="CoffeeCup HTML Editor (www.coffeecup.com)">
<meta name="created" content="Thu, 01 Dec 2011 17:34:38 GMT">
<meta name="description" content="">
<meta name="keywords" content="">
<style type="text/css">
   h1 {
   text-align:center;
   background: #7AC5CD;
   -moz-border-radius: 7px;
   border-radius: 7px;
   -moz-box-shadow: 5px 5px 5px #000;
   -webkit-box-shadow: 5px 5px 5px #000;
   box-shadow: 5px 5px 5px #000;
   background: -moz-linear-gradient(top, #55aaee, #003366);
   background: -webkit-gradient(linear, left top, left bottom, from(#55aaee), to(#003366));
   color: #000000; 
   height: auto; 
   padding: 5px;}
   form {
   background-color:#faefae;
   -moz-border-radius: 7px;
   border-radius: 7px;
   -moz-box-shadow: 5px 5px 5px #000;
   -webkit-box-shadow: 5px 5px 5px #000;
   box-shadow: 5px 5px 5px #000; }
   body {
   background-color:#7AC5CD; }
   .required {
   border:inset; 
   position:absolute;
   left:200px;
   -moz-border-radius: 7px;
   border-radius: 7px;
   -moz-box-shadow: 5px 5px 5px #000;
   -webkit-box-shadow: 5px 5px 5px #000;
   box-shadow: 5px 5px 5px #000; }
   .btn {
   position:absolute;
   left:600px;
   top:120px;
   width:125px;
   height:50px;
   font-size:larger;
   -moz-border-radius: 7px;
   border-radius: 7px;
   -moz-box-shadow: 5px 5px 5px #000;
   -webkit-box-shadow: 5px 5px 5px #000;
   box-shadow: 5px 5px 5px #000; }
   div.error {
   font-size:large; 
   color:red;
   font-family:arial;
   font-style:italic;}
   .images {
   alignment-adjust:absolute;
   position:absolute;
   text-align:center; 
   left:450px;
   background:#7AC5CD;
   background-color:#7AC5CD;}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>  
<script type="text/javascript" src="js\jquery.validate.js"></script>
<script>
$(document).ready(function(){
 $("#submission").validate({
   rules: {
      appSize: { 
         required:true,
         max:12 },
      appName: { 
         required:true,
         rangelength:[4,9] },
      appPrice: { 
         required:true,
         min:.99,
         max:3.99 },
      email: { 
         required:true,
         email:true }
   },
   messages: { 
      appSize: {
      required: "App Size is a required field"},
      appName: { 
         required: "App Name is a required field",
         rangelength: "The name must be between 4 and 9 characters" },
      appPrice: { 
         required: "App Price is a required field",
         min: "Price must be .99 or greater",
         max: "Price must be less than 3.99" },
      email: { 
         required: "email is a required field",
         email: "You must enter a valid email address" }

   },
   errorElement: "div"


 });

});
</script>
     </head>
       <body>
         <form id="submission" method="post" action="#">
           <h1>Apple iPhone App Contest Submission Page</h1>
          <div id="theForm">
              <div>
                <label for="appSize">What is the file size in KB?</label>
                <input name="appSize" type="text" id="fileSize" class="required"></input>
              </div>
              <br />
              <div>
                <label for="appName">What is the App Name?</label>
                <input name="appName" type="text" id="appName" class="required"></input>
             </div>
             <br />
             <div>
                <label for="appPrice">What is the App Price?  $</label>
                <input name="appPrice" type="text" id="appPrice" class="required"></input>
             </div>
             <br />
             <div>
                     <label for="email">Submitters Email Address</label>
                     <input name="email" type="text" id="email" class="required"></input>
            </div>
            <br /> 
           <input type="submit" class="btn" value="Submit"/>
         </div>
    </form>
  </body>
</html>
0 голосов
/ 05 декабря 2011
success: submit = true

Это не сработает так, как вы собираетесь.

Назначьте функцию этому свойству и сделайте там, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...