1

入力を変更してもフォーム送信をトリガーできません。イベント処理が必要だと思いますが、それが何であるかを実際に学んだことはありません。

ここに私のHTMLがあります:

<form action="/upload">
  <input type="file" name="file">
</form>

ここに私のJSがあります:

$('input').change(function(e){
var closestForm=$(this).closest("form");
    closestForm.submit(function(e) {   
  closestForm.ajaxSubmit({   
              success: function(data){
                    console.log('form submitted successfully');
              }
      }); //ajaxSubmit
    return false;
  }); //submit 
}); //change

AJAXを使用して送信したいのですが、jQueryフォームプラグイン ajaxSubmit()を問題なく使用できるコードベースの他の部分があるため、それは問題ではありません。

考え?

4

3 に答える 3

2

入力変更時にフォームを送信したいので。フォームでイベントを送信する必要はありません

 $('input').change(function(e){
    var closestForm=$(this).closest("form"); 
      closestForm.ajaxSubmit({   
                  success: function(data){
                        console.log('form submitted successfully');
                  }
          }); //ajaxSubmit
        return false; 
    }); //change
于 2012-09-27T20:36:33.253 に答える
0

次のように、フィールドが入力されるまでフォームの送信を「ロック」することができます。

var form_locked = true;

$("input").change(function(e){
    if($(this).val() == "") {
        form_locked = true;
    }else{
        form_locked = false;
    }
});

$("form").submit(function(e) {

    // prevent default form submit
    e.preventDefault();

    if(form_locked) {
        alert("Please fill in the field!");
    }else{
        // Do your form submission stuff here
    }

});
于 2012-09-27T20:40:08.453 に答える
0

次のSO Q&Aにつながったエラーメッセージに従って、私は自分の問題を解決しました。jQuery フォーム プラグイン - ファイルのアップロード時に TypeError がキャッチされません

私のエラーメッセージはこれに似ていました:

jquery.form.js:357 Uncaught TypeError: 
Object function (a,b){return new d.fn.init(a,b,g)} has no method 'handleError' 

基本的に、最新の jQuery Form プラグイン js ファイルをダウンロードするsubmit()とすぐに、関数を削除してajaxSubmit()、@Shusl の提案どおりに使用することができました。

私を正しい軌道に乗せてくれた@Shuslに特に感謝します。

于 2012-09-27T20:50:55.983 に答える