0

wordpress に基づいて Web サイトを構築しており、そこに jQuery を使用するフォームを配置しています。ただし、jquery はまだ理解し始めたばかりなので、作業中はまだ気分がよくありません。2 つの質問があります。

最初のもの: このフォームに関して、クライアント側とサーバー側の両方でフォームを検証する必要がありますか? それともサーバー側(php)だけで十分ですか?

2 番目の質問: フォームにはいくつかのフィールドがあり、ボタンをクリックすると複製できます。このために、次のコードを使用しています。

Jquery コード:

(function($){

 $countForms = 1;

      $.fn.addForms = function(idform){

                    var myform = "<table>"+
                     "  <tr>"+
                     "     <td>Field A ("+$countForms+"):</td>"+
                     "     <td><input type='text' name='fielda["+$countForms+"]'></td>"+
                     "     <td>Field B ("+$countForms+"):</td>"+
                     "     <td><textarea name='fieldb["+$countForms+"]'></textarea></td>"+
                     "     <td><button>remove</button></td>"+
                     "  </tr>"+
                     "</table>";



                    if(idform=='mybutton'){
                        alert(idform);
                        myform = $("<div>"+myform+"</div>");
                        $("button", $(myform)).click(function(){ $(this).parent().parent().remove(); });
                        $(this).append(myform);
                        $countForms++;
                    }

      };
})(jQuery);         



$(function(){
    $("#mybutton").bind("click", function(e){
    e.preventDefault();
    var idform=this.id;

        if($countForms<3){
            $("#container").addForms(idform);
        }       
    });
});

HTML:

<div id="container"><div>
<form method="post" name="b" >
<table>
    <tr>
        <td>Field A</td>
        <td><input type='text' name='dadoA'></td>
        <td>Field B</td>
        <td><textarea name="dadoB"></textarea></td>
        <td><button>remove</button></td>
    </tr>
</table>
</div>
</div>
<button id="mybutton">add form</button>

<div align="center">
<p><input type="submit" value="Registar" name="registar"></p>
</div>

これらのフィールドを検証するためにphpを使用する方法を知っています。私が知らないのは、それらを複製するときに検証する方法です。
つまり、このフォームには 2 つのフィールドがあり、それらを複製して、ユーザーがこの新しい (3 番目の) フィールドに間違った/受け入れられない値を入力するとします。
「送信」をクリックした後、PHP を使用して入力を検証し、ページを更新し、元の 2 つのフィールドと複製されたフィールド (ユーザーが複製したもの) をエコーし​​、ユーザーが入力したそれぞれの入力とエラーメッセージを表示するにはどうすればよいですか?

4

3 に答える 3

1

理想的には、UX の観点から、クライアント側を検証してから、そのサーバー側を再確認する必要があります。何か問題があることを発見するためだけにフォームを送信するのはかなり面倒です。送信前にエラーや問題を表示することは、常にプラスになります。

于 2012-07-11T17:48:04.673 に答える
0

これはまさにあなたが探しているものではないかもしれませんが、これを使用して検証を簡素化できます:ライブ検証

これは JavaScript 検証スクリプトです。私はそれが好きです。軽量で高速で、とても使いやすいです。それを使用する方法に関する完全なドキュメントがあり、すべてクライアント側で実行されます。

于 2012-07-11T17:30:35.107 に答える
0

最初の質問は主任錬金術師の回答でよく答えられていると思います。2 番目の質問に答えるには、変数フィールドを含むフォームを配列として投稿する必要があります。フォーム データを処理して検証するときは、各配列エントリを反復処理する必要があります。

于 2012-07-11T20:10:29.130 に答える