2011-08-09 19 views
1

PHPを使用して動的に生成されるいくつかのフォームを持つページがあります。 jQuery Validationプラグインを使用して検証しています。フォームはすべて同じですが、異なるアイテムに関連していますので、すべてのフォームに同じクラスを与えて、1つの関数(各フォームには固有のIDがあります)で検証できるようにしました。しかし、私はいくつかの問題を抱えている:動的に生成されたフォームを使用したjQueryフォームの検証

  1. 私は正しいフォーム項目で表示されるようにエラーメッセージが好きだろうが、私はちょうどフォームのクラスを使用している場合、バリデータは項目がある形成している知ることができませんから。
  2. フォームを送信するためのハイパーリンク(<noscript>タグ内の普通のsubmitボタン)があります。通常はフォームを送信するためにjQueryを使用しますが、jQueryはクリックした送信リンク提出する?

私が考えることができる最も簡単なことは、フォームIDをいくつかの検証方法に渡すことです。それは可能ですか?

フォーム

は次のようになります。

<?php while($row= pg_fetch_row($groups)) { ?> 
<p class="error" id="error-<?php echo $row[0] ?>"></p> 
<form action="../scripts/php/groups-process.php" method="post" id="editgroup-<?php echo $row[0] ?>" class="editgroup"> 
    <label for ="edit-<?php echo $row[0] ?>" >Edit group name:</label> 
    <input type="text" class="text" size="20" maxlength="30" name="edit" id="edit-<?php echo $row[0] ?>" value="<?php echo $row[1] ?>" /> 
    <noscript><input type="submit" name="editgroup" value="Submit" /></noscript> 
    <div id="submitcontainer-<?php echo $row[0] ?>"></div> 
</form> 
<?php } ?> 

私は、通常、このような形式の検証になります、これを試してみてくださいよりも、すべてのフォームに同じクラスを与える

$(document).ready(function(){ 
    $("#editgroup").validate({ 
     rules: {edit: {required: true, maxlength: 30}}, 
     messages: {edit: {required: 'Please enter a group name', maxlength: 'Please enter a shorter group name'}, 
     errorContainer: "p#error", 
    }); 
    $("#submitcontainer").html('<a class="button" href="javascript:void();" id="submitlink" name="submit">Submit</a>'); 
    $("#submitlink").click(function() { 
     $("#editgroup").submit(); 
    }); 
}); 
+0

既に試したHTMLとJSのコードを貼り付けてください。 – LeeR

+0

質問にいくつかのコードを追加しました。私は実際にJSを試したことはありません、私は別の形の私のコードを適応させ始めました、そして、私は立ち往生しました。私はインターネットで見てきましたが、私は解決策を見つけませんでした。 – Pikaling

答えて

0

結果が2回繰り返されたので、各フォームのフォーム検証ツールを動的に作成し、次にdynamicall yフォームを作成します。これは私が望むコントロールを私に与えたいと思う最善の方法でしたが、明らかにそれは遅く、より多くのコードを生成します - 理想的な解決策ではありませんが、この状況のた​​めに行います。

0

<form id="1" class="common" method="post" action="page.php"> 
    <input type="text" class="common_input_class" size="20" maxlength="30" name="edit" id="whatever" value="whatever" /> 
    <input type="submit" name="submit" class="submit_this_form" value="submit" /> 
    </form> 

    <form id="2" class="common" method="post" action="page.php"> 
     <input type="text" class="common_input_class" size="20" maxlength="30" name="edit" id="whatever" value="another value" /> 
      <input type="submit" name="submit" class="submit_this_form" value="submit" /> 
    </form> 

    <script type="text/javascript"> 
     $(".common").submit(function(){ 
     var form_id = $(this).attr('id'); 
     var input_val = $(this).children('.common_input_class').val(); 
     if (input_val == '') 
     { 
     alert("input field is required"); 
     return false; 
     } 
}); 
    </script> 
+0

あなたはフォームIDを取得しています。どのフォームが提出されたかはあなたがそのフォームID –

関連する問題