javascript の無効のブラウザの場合に、POSTできないように書く書き方があったような気がします。

<form action="" onSubmit="return check(なんとか);" method="post"> のように書いていたような気がします。
form タグと、javascript の見本を教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2009/05/03 23:15:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:van-dine No.1

回答回数108ベストアンサー獲得回数11

ポイント27pt

上の書き方で問題ありません。

上の例で、check(~)がfalseを返すと、フォームは送信されません。

trueを返すと、送信されます。

ちなみに、onsubmit以外にも、"return false;"とすることで、

なかったことにすることができます(全てのイベントに有効なわけではありません)。

↓ダミー

http://q.hatena.ne.jp/1240755142

id:isogaya

javascript が無効な場合にPOSTできないようにするためなんで、action を空にしてあります。

javascript が有効な場合に引数をもっていって処理する必要があるのではないでしょうか?

2009/04/27 00:05:46
id:AmaiSaeta No.2

回答回数74ベストアンサー獲得回数8

ポイント27pt

http://www.hatena.ne.jp/

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属性を付けたりしていません。

id:MinazukiBakera No.3

回答回数7ベストアンサー獲得回数1

ポイント26pt

フォームに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されるだけです。

http://bakera.jp/ref/html/data/uri

  • id:van-dine
    意味を間違えました。ごめんなさい。
    document.フォーム名.action = 送信先 ですね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません