人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascript の無効のブラウザの場合に、POSTできないように書く書き方があったような気がします。
<form action="" onSubmit="return check(なんとか);" method="post"> のように書いていたような気がします。
form タグと、javascript の見本を教えてください。

●質問者: isogaya
●カテゴリ:ウェブ制作
✍キーワード:JavaScript タグ ブラウザ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● van-dine
●27ポイント

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

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

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

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

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

↓ダミー

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

◎質問者からの返答

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

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


2 ● 天井冴太
●27ポイント

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


3 ● ばけら
●26ポイント

フォームに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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ