1

読み込まれたフォームに問題があります。イベントをトリガーしません。フォームは次のとおりです。

<form id ="form1" method="post" action="newjsp.jsp">
<h2>Form1</h2>
<p>
<span style="margin-left: 4px">Number:</span>
<input type="hidden" name="form_number" value="1"/>
<input class="textBox" type="text" name="number" value=""/>
</p>
<p>
<input id="the_button" type="submit" name="submit_button" value="Set"/>
</p>
</form>

.on()、.live()、および .delegate() を使用して基本的な例を試しましたが、どれも機能していないようです。number が 11 桁の長さかどうかを検証したい。そうでない場合は、送信を停止してください。jQuery は次のとおりです。

$("#form1").submit(function e(){
if($(".textbox").length != 11)
    {
        e.preventDefault();
        $("#output").append("<p style='color:red;'>Please enter a valid number!</p>");
    }
});

ありがとう!

4

2 に答える 2

1

.on()フォームは動的に作成されるため、イベント委任を使用します。またe、間違った場所に引数があるため、preventDefault()呼び出しは失敗します。

$(document).on('submit', '#form1', function(e){
    if($(".textBox").val().length != 11)
    {
        e.preventDefault();
        $("#output").append("<p style='color:red;'>Please enter a valid number!</p>");
    }
});

また、使用する形式ではなく、使用する Javascript でtextBox、クラス名に問題があります。最後に、 を使用して長さ not を取得します。後者は、入力値の文字数ではなく、選択された要素の数のみを示します。textBoxtextbox$('.textBox').val().length$('.textBox').length

于 2013-08-20T12:29:00.540 に答える
-1

括弧内に「e」を移動すると、機能します。

$("#form1").submit(function(e){
if($(".textbox").length != 11)
    {
        e.preventDefault();
        $("#output").append("<p style='color:red;'>Please enter a valid number!</p>");
    }
});
于 2013-08-20T12:28:42.240 に答える