0

標準フォームの html を返すメソッドを含む JavaScript オブジェクトを作成中です。このオブジェクトには、validate(); メソッドもあります。validate(); を使用するようにフォームを生成したいと思います。

したがって、検証を伴うフォームの典型的な html は、おそらく次のようになります。

<form id="a" onSubmit="return validate();">

問題は、オブジェクトインスタンスを参照できるようにする必要があるため、より似ている必要があることですonSubmit="my_object.validate();">

私は何かを試しまし return '<form id="a" onSubmit="return ' + this.validate + '();">'; たが、本当に奇妙な動作をします。

検証関数が任意に true を返すようにすると、フォームは送信されますが、false は送信されません。メソッドで他の計算を行うと、次のエラーが発生します。

> Error: syntax error Source Code:
>     return id ==

誰もこのようなことを経験しましたか?

4

4 に答える 4

0

ページに追加した後、要素に適用し、クロージャーを使用してスコープを維持しないのはなぜですか?

var myId = "bar" + index;
foo.innerHTML="<form id='" + myId + "'>...</form>";
var that = this;
document.getElementById(myId).onsubmit = function(){ that.validate(this); }

マークアップにイベントハンドラーを追加することは、常に悪い考えです。

于 2009-07-11T13:28:29.527 に答える
-2

eval() を使用して文字列を JavaScript として実行する

[編集] フォームのプロトタイプを作成し、送信時に this.validate() を呼び出す必要があるように聞こえます。JavaScript を使用してフォーム オブジェクトを作成するときにフォーム オブジェクトへの参照を取得し、検証用のメソッドを定義して、それを validate プロパティに割り当てます。

于 2009-07-11T08:06:07.997 に答える