0

これがコードです。2つの異なるファイルがあります

1 メタデータ.php

<script>
      $(document).ready(function(){

        $("#addAuthor").click(function(e){
         e.preventDefault();
         $.ajax({url:"n.php",type: "POST",data: ({id: '1'}),success:function(result){
         $("#div1").append(result);
            }});
        });

        $("#removeAuthor").click(function(e){
               e.preventDefault();
               var lastNode = $("#div1").children().last();
               lastNode.prev().remove();
               lastNode.remove();
         });
      });
 </script>

  <div id="div1" >

  </div>
       <button id="addAuthor" >Add Author</button>
      <button id="removeAuthor">Remove Author</button>
<input type="submit" name="save" value="Save & Continue">

2 n.php

Name:<input type="text" name="txtname[]">
age:<input type="text" name="txtage[]">

「addAuthor」ボタンのクリックで何が起こるか ajax は、ボタンのクリックと同じ回数 n.php のすべてのコンテンツをロードします。

そして txtname[] と txtage[] はすべてのテキストボックスの値を保存します。しかし、これらの配列はフォーム ポストに値を与えます。

では、フォーム投稿の前にテキストボックスの値を検証するにはどうすればよいですか? フォーム投稿で値を検証すると、検証が失敗した場合、metadata.php は n.php のロードされたコンテンツに残りません。

では、どうすればこれを行うことができますか??

4

1 に答える 1

0

フォームを送信する前に txtname と txtage を検証する場合は、次のようにします。

<script>
    $(document).ready(function(){
        $("#div1 input[name='txtname']").each(function() {
            // make test on the current txtname
        });

        $("#div1 input[name='txtage']").each(function() {
            // make test on the current txtage
        });

        // uncomment this to prevent form submition
        //return false;
    });
</script>
于 2013-04-07T10:47:29.300 に答える