js onsubmit

2338 ワード

Webフォームのコミットには、さまざまな方法があります.
Javascriptでコミットメソッドを書き、buttonのonclickでトリガーできます.inputのtypeをsubmitに設定し、formをactionとmethod設定して直接コミットすることもできます.
一般的にフォームを提出する前にいくつかの判断が必要ですが、最初の方法を使用すると、これらの判断は提出時にトリガーされるJavasceiptの方法に書けばいいです.2つ目の方法を使用する場合は、formのプロパティ「onsubmit」を使用する必要があります.
この「onsubmit」を小さな例で研究した.
ボタンをクリックしてコミットした後、onsubmitが設定されている場合は、まずonsubmitにメソッドが呼び出され、onsubmitの値がtrueの場合はコミットが継続され、falseの場合はコミットされず、デフォルト値がtrueの場合、上記のjsのメソッドでfalseが返され、フォームのコミットに成功しますか?
答えは正常に提出できることです.デバッグの时、ここは长い间カードをかけて、falseなのにやはり成功して过ぎて、とても気がふさぎます.
これではtrue or falseを返してもコミットされ、この検証方法は機能しません.
falseがコミットしない場合は、コードを送信する必要があります.
 
      
変更後:
       return submitForm(this);">
      
資料を調べ、原因を探し、分析する.
onsubmitプロパティは、オブジェクトのメソッド名のようなもので、値(文字列)はメソッドボディであり、デフォルトではtrueを返します.Javaと同様に、組み込み関数やカスタム関数など、任意の複数の文を書くことができます.
コード:
 
οnsubmit="
    alert(' submit ');//組み込み関数
    submitForm ();//カスタム関数
    alert(this.tagName);//このキーワードを使った
    ......(任意の複数の文)
    return false;
"
 
  
  
        
Function submitForm (form) { // return false; }

 
コードに相当します.
 
Form.prototype.onsubmit = function() {
    alert('submit');//組み込み関数
    submitForm ();//カスタム関数
    alert(this.tagName);//このキーワードを使った
    ......(任意の複数の文)
    return false;
};
 
 
これでデフォルトメソッドが上書きされます(デフォルトはtrueを返します)
 
このような分析を経て、以上の状況は理解しにくくなりました.
 
このように書くと、overrideメソッドの効果は次のとおりです.
Form.prototype.onsubmit = function() {
    submitForm();
};
 
 
ここでsubmitForm()はfalseを返しますが、この関数のみを実行し、結果を処理しません.コード
 
 
 
overrideメソッドの効果は次のとおりです.
Form.prototype.onsubmit = function() {
    return  submitForm();
};
 
これにより,その戻り値を利用し,所期の効果を達成した.
 
感じ:
この目立たないreturnはかなり重要ですね..
Javascriptはjava言語とは関係ありませんが、多くのjavascriptの問題はJavaの考え方でシミュレーションを考えることができます.なにしろ彼らは対象向けの言語であり、論理的には共通点がある.これはjavascriptの内部を知るのにも役立ちます.