0

このコードをフォームの検証に使用していますが、

$("#btnaddregistration").live("click", function(e) {
    e.preventDefault();
    var errorCount = 0;
    $("#formaddregistration").find("input").each(function(i) {
        if ($(this).val().length == 0) {
            errorfield = $(this);
            errorCount++;
            $("#modaldialogtext").text("'" + $(this).parent().parent().find("label").text() + "' cannot be left blank.");
            $("#modal_confirmation").dialog("open");
            return false;
        }
    });
    if (errorCount > 0) {
        return false;
    } else {
        document.forms["formaddregistration"].submit();
    }
});​

しかし、フォームは送信されていません。可能なすべての送信方法を使用しましたが、失敗しました。私が間違っているところはありますか?

4

1 に答える 1

-1

まず、コードを大幅に改善できるため、トラブルシューティングに役立ちます。

フォームが送信されない場合は、セレクターが実際に機能していることを確認してください。つまり、$form.hide()PEBCAK でないことを確認するために、セレクターが非表示になるかどうかを確認してください。

var $form = $("#formaddregistration");
$("#btnaddregistration").on("click", function(e) {
    var errorCount = 0;


    $form.find("input").each(function(i) {
        var $this = $(this);
        if ($this.val().length < 1) {
            errorCount++;

            // this line also needs improving..
            $("#modaldialogtext").text("'" + $this.parent().parent().find("label").text() + "' cannot be left blank.");
            $("#modal_confirmation").dialog("open");
            return false;
        }
    });

    if (errorCount < 1) {
        $form.submit();
    }

    return false;
});​
于 2012-12-04T20:57:31.617 に答える