0

ここからjquery.form.jsを使用しています:http://www.malsup.com/jquery/form/。送信する前に、フォームから入力されたテキストのテキストを検証したいと思います。検証は「search_validate.php」に行きます。この部分は正常に機能します。検証に合格すると、フォームアクションが変更されます。それもうまくいきます。

アクション属性を変更した後、フォームを正常に送信することはできません。ブラウザが「/videos/search/」ページに移動することはありません。同じページにとどまります。「/videos/search/」ページがFirebugに何度も読み込まれているのがわかります。

<form id="search" method="post" action="">
<input type="text" id="query" />
<input type="image" id="searchmag" src="blah.jpg" ?>
</form>

<script>
$(function(){
  $('#searchmag').click(function(){
    $('#search').attr('action','/search_validate.php');

    $('#search').ajaxForm(function(data, textStatus){
      if ((data.indexOf('letters & numbers only')>-1)) {
      $('#query').css('color','#FF0000').val(data); 

      $("#query").unbind("click").click(function(){
        $('#query').css('color','#848484').val('');
      });
    } else {
      $('#search').attr('action','/videos/search/' + $('#query').val());
      $('#search').submit();
    }
    });
  });
});
</script>
4

1 に答える 1

7

これは常に私のために働きます:

$("#myForm").on("submit", function(event) {
    event.preventDefault();

    // Validate form, returning on failure.

    $(this).off("submit");

    this.submit();
});

これがお役に立てば幸いです。

于 2012-11-22T21:45:37.553 に答える