2017-03-04 2 views
0

を使用する際に形成するために、actionパラメータを提供し、私は次のように私はHTMLフォームを宣言する場合、私は上記のコードは働いていたことがわかりjQueryのフォームの提出 - なぜイベントハンドラ

$('#registration-form').on('submit',function(e){ 
    e.preventDefault(); 
    var details = $('#registration-form').serialise(); 
    $.post('/newreg',details,function(data){}); 
}); 

でフォームの送信を処理するために、次のコードを書きました:

<form id="registration-form" action="/newreg" method="post"> 

しかし、私はformタグでアクションおよび方法を提供していない場合は動作しません

<form id="registration-form"> 

JQueryでフォームのイベントハンドラ、アクション、およびメソッドについて既に言及していませんか? HTMLフォームタグで同じことをもう一度言及するのは冗長ではありませんか?

+1

注:HTML4仕様では、アクション属性を設定する必要があります(設定するには、何でも設定できます)。 – mehulmpt

+0

私のコードでは、serializeのスペルが間違っています。シリアライズしないでください。 –

答えて

0

でこのAJAX要求コードを試すことができますか?

JavaScriptを使用していますが、より一般的な機能があります。

$.ajax({ 
    url: this.action, 
    method: this.method, 
    data: $(this).serialize() 
}).done(function (data, textStatus, jqXHR) { }); 

それはHTMLのformタグで再び同じことを言及する冗長ではないですか?

はい、それは必ずしも悪いことではありません。

the dictionaryを参照:(成分の)

工学厳密機能に必要であるが、別のコンポーネントに障害が発生した場合には含まれません。

高品質で堅牢なコードを作成する場合は、システムに冗長性を持たせることが望ましいです。 Javascript does failだから、unobtrusiveという方法で書くのがベストプラクティスです。

(重要なビットは、JSで重複している値ではなく、正しく結線されているフォームです。重複を避ける方法については、その答えの先頭を参照してください)。

+0

ありがとうございます。 JSONとしてデータを送信したい場合、どうすればいいですか?これでいい? JSON.stringifyが現時点で動作するかどうかを実際にテストすることはできません。 –

+0

"JSONとしてデータを送信したい場合はどうすればよいですか?* JSONはJSONを使わずにJSONを生成することができないので、コードを書くのが難しくなります(データを解析する必要があるため)サーバー上で2つの異なる方法で) – Quentin

+0

"これは問題ありませんか? JSONを送信し、標準形式のエンコーディングを使用してデータをエンコードします。そして、それをエンコードします(これは、JSON.stringify($( '#登録フォーム')。 – Quentin

-1

あなたは、私はすでにjQueryのフォームのイベントハンドラ、アクションおよび方法を言及しなかったのアウトアクションまたはメソッド宣言

$('#registration-form').on('submit',function(e){ 
    e.preventDefault(); 
    var details = $('#registration-form').serialise(); 
    $.ajax({ 
    url : '/newreg', 
    data : details, 
    type : 'post', 
    function : success(data){ 
     console.log(data); 
    }, 
    function : error(data){ 
     console.log(data); 
    } 
    }); 

    }); 
+0

OPのコードがうまくいかなかった場合、なぜそれが機能しますか?元のコードで何が間違っていますか? – nnnnnn

+0

@nnnnnn $ .postリクエストでURLとメソッドを定義していないOPのコード –

+0

はい、URLは '$ .post()'の最初の引数であり、 '$ .post()'関数自体は明らかにメソッドは 'POST 'に... – nnnnnn