0

内部にフォームがあるポップオーバーがあります。そして、それはすでに出ており、提出の準備ができています。これがポップオーバーのコードです

<div id="popover-head" class="hide">Add new subject</div>
<div id="popover-content" class="hide">
     <form class="form-inline" id="pop-form" method="POST" action="../admin/module_add_subject.do">
          <div class="form-group">

          <!-- This input is what i'm talking about -->
          <input type="text" name="subjectName" id="subject-name" required="required" pattern="^[\S\s]{3,25}[A-z]+$" title="Only accept alphabet characters and length is minimum of 3 and max of 25 " placeholder="Subject name.."/>

          <button class="btn btn-primary" type="button" id="add-subject" ><i class="icon-white icon-ok"></i></button>

       </div>
       <p></p>
       <p style="color:red" id="error-message"></p>
     </form>
</div>

上記の入力は、正規表現が機能していると確信しています。buttonを必須に変更するsubmitと完全に正常に機能しますが、元に戻すとbutton再び機能しません。

私のsubmitボタンがtype="button"このコードのせいである理由:

$(document).on('click', '#add-subject', function(e) {
     $.post('../admin/module_check_subject.do', { subjectName: $('#subject-name').val() },
    function( data ) {
        // if data from the database is empty string
        if( $.trim( data ).length != 0 ) {
        // hide pop-over
        $('#popover').popover('hide');
        // submit form
        $('#pop-form').submit();
        } else {
        $('#error-message').text('Subject already exist.' );            
        }           
    }
     })
    .fail( function () {
                bootbox.alert('Failed to check, please try again later.');
    });
});

私がやっていることは送信時 text に、テキストボックスへの入力がデータベースに存在する場合はデータベースで最初にチェックアウトし、データベース text が存在する場合はフォームの送信を停止し、 p タグにエラーを表示します

4

1 に答える 1

0

フォーム送信アルゴリズムにより、submit()メソッドを使用してフォームが送信された場合、検証は実行されません。多かれ少なかれ、スクリプトを使用してフォームを送信すると、スクリプトは必要と思われるチェックも実行する必要があります。

スクリプト内でcheckValidity()メソッドを呼び出して、フォームが送信ボタンで送信された場合に実行される通常の検証を実行できます。静的検証のみを実行することに注意してください。

于 2013-11-03T14:19:43.347 に答える