<form action="" onSubmit="return check(なんとか);" method="post"> のように書いていたような気がします。
form タグと、javascript の見本を教えてください。
上の書き方で問題ありません。
上の例で、check(~)がfalseを返すと、フォームは送信されません。
trueを返すと、送信されます。
ちなみに、onsubmit以外にも、"return false;"とすることで、
なかったことにすることができます(全てのイベントに有効なわけではありません)。
↓ダミー
URLはダミーです。
<form action="" onSubmit="return check(なんとか);" method="post">
このコードが正しいとするならば、1の回答の手段と共に、body要素のロード時にactionをJavaScriptで設定していたのではないでしょうか。
<body onload="document.forms[0].action = 'http://www.example.com/action';"> <form action="" onSubmit="return check();" method="post"> <!-- snip --> </form> </body>
こんな感じで。
※すみません。ものぐさこいてbody要素に直接onloadイベント書き込んでたり、form要素にid属性やname属性を付けたりしていません。
フォームにsubmitボタンを付けずに、
<input type="button" onclick="document.getElementById('form').submit()" value="送信">
などとすると、スクリプト有効時のみ動作します。
が、もっとシンプルに、form要素そのものをスクリプトで書き出すという方法もあります。
<script type="text/javascript"> document.write('<form action="">'); ……(中略)…… document.write('</form>'); </script>
こうすると、スクリプト無効時にはフォームそのものが表示されません。スクリプト有効時にしかPOST出来ないという目的は達成できますし、スクリプト無効時に「ボタンを押してもなにも起きない」といった悲劇も回避できますので、こちらのほうがお勧めです。
# ちなみに、action属性の値を空にしても、単に空のURIが指定されていることになりますので、自身 (もしくはbase要素で指定されたURI) にPOSTされるだけです。
javascript が無効な場合にPOSTできないようにするためなんで、action を空にしてあります。
javascript が有効な場合に引数をもっていって処理する必要があるのではないでしょうか?