1

Grails < formRemote > タグを介して送信する単純なフォームを使用しています。これは正常に機能しており、期待どおりです。最近、単純なフォームに検証を追加するために、 jqbootstrapvalidaton .js をプロジェクトに追加しました。これを実行してフォームで送信を押すと、定義されているすべての要素に対してフォームが POST するようになりました(たとえば、5 つのフォーム要素がある場合、Grails の formRemote と jqBootstrapvalidation を使用しているときに送信を押すと、5 つの POST 送信が取得されます)。

例として、次のフォームを検討してください。

<g:formRemote  name="sampleForm" url="[controller: 'test', action: 'demo']" >

<input type="text" name="myy" id="myy" value=""  required />
<input type="text" name="myo" id="myo" value="" required />

<input type="submit" name="submit" value="Submit" />

</g:formRemote>

ご覧のとおり、フォームには 2 つの入力変数と 1 つの送信ボタンがあります。通常 ( jqbootstrapvalidatonを使用しない場合)、このフォームを送信すると、コントローラーに1回POSTされます。

ただし、この単純なフォームにjqbootstrapvalidatonを導入して以来、送信をクリックすると 3 つの POST 送信が表示されます。

私のページの唯一の他のコードはこれです:

$(function () {
  $("input,select,textarea").not("[type=submit]").jqBootstrapValidation();
}

検証の設定に使用します。

誰かが似たようなことを経験しましたか? フォーム要素ごとに POST するのではなく、このフォームを度だけ POST する方法についての提案は素晴らしいでしょう!

前もって感謝します。

4

1 に答える 1

0

ajax 経由でフォームを送信するには、jqBootstrapValidation 自体を使用する必要があります。エラーがなければフォームを送信するメソッドがあります。サンプルコードは次のとおりです。

$(function () { $("input,select,textarea").not("[type=submit]").jqBootstrapValidation({

    preventSubmit: false,
     submitSuccess: function (form, event) {
         event.preventDefault();
         dosubmit(form);///your javascript function to submit
     },
     submitError: function (form, event, errors) {
         event.preventDefault();
         }
    }); } );
于 2013-03-30T07:52:36.760 に答える