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;
"
コードに相当します.
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の内部を知るのにも役立ちます.
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の内部を知るのにも役立ちます.