これを行う方法は、値をフォームから検証コードに直接渡すことです。
<form name="form" id="form" onsubmit="return validate(this.field.value)">
<input type="text" id="field" />
</form>
または、次を使用して、フォームなしでテキスト ボックスを使用することもできます。
<input type="text" id="field"
onkeydown="if (event.keyCode == 13) return validate(this.value)" />
スクリプトを更新して、新しい値パラメーターを許可します。
<script type="text/javascript">
function validate(val) {
if (val.length < 1)
{
alert ("field cannot be left blank");
return false; //to stop the default action of submitting the form
} else {
alert ("Value: "+val);
return true; //allow to submit the page
}
}
</script>
これは実際には非常に簡単で単純な検証ですが、システムに送信を続行させるかどうかに基づいて、リターン アクションを設定することを忘れないでください。
リモートの html アドレスからか、ローカルに保存された div からか、どこからページをプルしているのかわかりません。したがって、DOM から値を取得するソリューションが機能しない理由がわかりません。通常、jquery を使用して、facebox ウィンドウのさまざまなフィールドから値を取得および設定することに問題はありません。
注: スクリプトを配置する場所に注意する必要があります。アプリケーションによって異なりますが、スクリプトを facebox ページではなくルート ドキュメントに配置したい場合があるかもしれません。これは、リモートの facebox div をロードすると、スコープが変更され、parent.document を参照して親フィールドにアクセスする必要がある場合があるためです。スクリプトはリモートの facebox div に埋め込まれています。