2

JavaScript を使用してフォームを検証する必要があります。フィールド名テーブルのデータを使用して各フィールド (名前、住所、電話番号など) を印刷しているため、フォームは変更されません。フィールドと対応するテキスト入力タグのラベルを出力するためにループを使用しています。(例: name : 名前を入力するテキストボックス、phone no : 電話番号を入力するテキストボックス) そして最後に、フォームを送信して詳細テーブルに入力するときに、これらの値を配列に取得します。

以下は、各フィールドとテキスト ボックスを印刷するためのコードです。

while ($row=mysql_fetch_array($result)){
    echo'<labelfor='.$row['field_name'].'name=field_id>'.$row['field_name'].':</label>';                        
    echo'<inputtype="text" name=field_name[]id="'.$row['field_id'].'":value="'.$row['field_value'].'" size="20" class = "inpBox" >';
}

ここで、JavaScript を使用してこれらのフィールドが空かどうかを確認し、その特定のテキスト ボックスのスタイルを変更する必要があります。どんな助けでも大歓迎です。

4

2 に答える 2

1

フォームの送信イベントをフックする必要があります。次に、次のようなことができます。

これはjQuery用です:

$("form").submit(function{
    $('input[type="text"]',"form").each(function(){
        var $me = $(this);
        var status = true;
        if($me.val() == ""){
            $me.addClass("input-validation-error");
            status = false;
        }
        //Return status. True=Form is valid, False=Form is NOT valid
        return status;
    });
});

ここで詳細を読むことができます: http://api.jquery.com/submit/

JavaScript の値を取得するには、次のようにします。

var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
    var me = inputs[i];
    if(me.value == "") {
        me.className = "input-validation-error";
    }
}​
于 2012-07-24T12:04:20.887 に答える
0

一般的にGoogleの「動的フォーム検証」

特定のケースについては、https://developer.mozilla.org/en/DOM/document.getElementsByClassNameを参照 して、すべての要素をループしてください。入力フィールドにプロパティを追加して、検証が必要かどうか、および必要な検証のタイプを定義することをお勧めします。

于 2012-07-24T12:03:24.483 に答える