2009-08-12 8 views
1

мне нужна LITLE помощь, чтобы проверить мою форму:Jquery форма проверки - динамическая форма имени

Теперь я использую этот код, чтобы проверить мою форму:

$(document).ready(function() { 

     $("#set_search").validate({ 
      rules: { 
       q: { 
        required: true, 
        minlength: 2 
       }, 
       q2: { 

        number: true 
       }, 

      }, 
      messages: { 
       q: "Please enter your name", 
       q2: "Only numbers allowed", 

      } 
     }); 
}); 

И я имею эту форму поиска, в для цикла:

for ($i=0;$i<5;$i++) { 

     echo "<div class='showhide$i'><form name='set_search' id='set_search' action='settings.php' method='get'><p><label for='q1'>name</label><input type='text' id='q' name='q'/></p><p><label for='q2'>number</label><input type='text' id='q2' name='q2' /></p><p><input type='submit' value='Search'/></p></form></div></p>"; 

} 

Unfortunatelly с этим кодом только первая форма поиска работает и проверены, и следующей формы техника его подводит. Так я думаю:

  • я должен модифицировать от имени и идентификатора:

    < form name='set_search$i' id='set_search$i'

  • и я должен изменить проверку на что-то вроде этого:

    вар sr = $ (this) .attr ('id'); $ ("# set_search" + С.Р.) .validate ({

Но это не в порядке. Вы не могли бы помочь кому-то? Thx.

ответ

1

хотя ответ Кирана Хейса.

<form class="myxform"... , $(".myxform").validate({... 

но сгенерированный html (DOM) был бы неправильным. должна быть изменена:

for ($i=0;$i<5;$i++) { 

     echo "<div class='showhide$i'><form name='set_search_".$i."' id='set_search_".$i."' action='settings.php' method='get'><p><label for='q1'>name</label><input type='text' id='q' name='q'/></p><p><label for='q2'>number</label><input type='text' id='q2' name='q2' /></p><p><input type='submit' value='Search'/></p></form></div></p>"; 

} 

В JavaScript

$("input[id^='set_search']").validate({... 

или

$("input[id^='set_search']").each(function(){ 
     $(this).validate({...}); 
}); 

--- EDIT

Javascrit:

$(document).ready(function() { 
    $("form[id^='set_search']").each(function(){ 
     alert($(this).attr("id")); 
     $(this).validate({ 
      rules: { 
        q: {required: true, minlength: 2}, 
        q2: {number: true} 
      }, 
      messages: { 
        q: "Please enter your name", 
        q2: "Only numbers allowed" 
      } 
     }); 
    }); 
}); 

HTML:

<div class="showhide_1"> 
    <form name="set_search_1" id="set_search_1" action="settings.php" method="get"> 
     <p><label for="q1">name</label><input type="text" id="q" name="q"/></p> 
     <p><label for="q2">number</label><input type="text" id="q2" name="q2" /></p> 
     <p><input type="submit" value="Search"/></p> 
    </form> 
</div> 
<div class="showhide_2"> 
    <form name="set_search_2" id="set_search_2" action="settings.php" method="get"> 
     <p><label for="q1">name</label><input type="text" id="q" name="q"/></p> 
     <p><label for="q2">number</label><input type="text" id="q2" name="q2" /></p> 
     <p><input type="submit" value="Search"/></p> 
    </form> 
</div> 
+0

Я пробовал все, что вы предлагали, но ничего .. – 2009-08-12 20:43:04

+0

Я меняю $ ("input [id^= 'set_search']") x $ ("form [id^= 'set_search']") –

+0

ura genius !; Большое спасибо! – 2009-08-13 16:52:40

1

Просто прикрепите имя класса к формам, которые должны быть . подтверждено

+0

Я пытался, но его не в порядке. – 2009-08-12 20:38:30

0

Это должно найти все формы, которые имеют «set_search» в их ID:

$('form[id*="set_search"]').validate(); 

Это нужно найти все формы, которые начинаются с set_search», как их ID:

$('form[id^="set_search"]').validate(); 

Любой должен исправить вашу проблему.

+0

Этот код должен работать, но что-то не в порядке: Я отправил ответ с текущим кодом..pls взгляните, maybee и посмотрите, что не так. – 2009-08-12 20:40:44

0

Это должно работать, но что-то не так ..:

$(document).ready(function() { 



    $('form[id*="set_search"]').validate({ 

      rules: { 
       q: { 
        required: true, 
        minlength: 2 
       }, 
       q2: { 
        email: true 
       }, 

      }, 
      messages: { 
       q1: "Please enter your name", 
       q2: "Please enter a valid email address", 

      } 
     }); 


    }); 
</script> 
<style type="text/css"> 
.error { 
    color: red; 
    font: 12pt verdana; 
    padding-left: 10px 
} 
.input { 
    margin-top:10px; 
    margin-left:20px; 
} 
</style> 

</head> 
<?php include("config/kapcsolat.inc");?> 
<body> 
<?php 
    for($i=0;$i<3;$i++) { 

     echo "<p><div class='showhide$i'><form name='set_search".$i."' id='set_search".$i." ' action='settings.php' method='get'><p><label for='q1'>name</label><input type='text' id='q' name='q'/></p><p><label for='q2'>uniqid</label> 
<input type='text' id='q2' name='q2' /></p><p><input type='hidden' id='q3' name='q3' value='1' /></p><p><input type='submit' value='Search'/></p></form></div></p>"; 
} 


?> 
</body> 
</html> 
Смежные вопросы