私はしばらくの間、この質問に対する答えを探していましたが、運がありませんでした。答えやすい人もいるかもしれません。
このタグでは:
<form method="post" action="" class="jcart" id="somethinghere" onsubmit="return validate(this)">
「this」キーワードは何を表していますか?
たとえば、別の JavaScript 関数内からこのフォームの「検証」関数を呼び出したい場合、どうすればよいでしょうか?
私はそれが次のようなものであることを知っています:
<script type='text/javascript'>
function MyTest(){
validate(???);
}
</script>
しかし、検証関数の呼び出しの中に何を入れるべきかわかりません。
編集
これが私がやろうとしていることです。
Ajax 経由で送信されるフォームがあります。また、それにはいくつかの検証もあります。ただし、検証スクリプトは通常、フォームが送信されるときに呼び出されます。ただし、Ajax 関数は既に送信ボタンの「クリック」を取得してデータを送信しているため、検証をトリガーする方法でフォームが「送信」されることはありません。
このコードは、Ajax 経由でフォームを送信する役割を果たします。
$('.jcart').submit(function(e) {
add($(this));
e.preventDefault();
});
そのため、そこから検証関数を実行し、検証に合格した場合にのみ add() 関数を呼び出すことができるようにしたいと考えています。しかし、フォームを参照して onsubmit 呼び出しの「this」と同じ要素参照を取得する方法がわからないため、ここから関数を呼び出す方法がわかりません。
編集2
私はこれを試しました:
$('.jcart').submit(function(e) {
if(validate(document.getElementById("somethinghere"))){
alert("validated");
add($(this));
e.preventDefault();
}
else {
alert("not validated");
e.preventDefault();
}
});
しかし、「検証が定義されていません」というエラーが表示されます。
また、上記のコードはドキュメントの最後にロードされ、validate 関数を含むファイルが最初に呼び出されます。したがって、ここで呼び出しようとすると、検証関数が使用可能になると考えていたでしょう。既にロードされているはずだからです。