javascriptにて、
オブジェクトのactionにphpベースのURLを指定し、javascriptのsubmit()でPOSTを引き継ごうとした場合、セッションで保持していた変数が消えてしまうのですが、これは仕様でしょうか。
ちなみに通常のINPUT TYPE="submit"では、セッションが維持されます。
目的としては、javascriptのsubmit()でも、INPUT TYPE="submit"のボタンを押したときでも、同様にセッションを維持できるようにしたいのですが、javascriptのsubmit()でセッションの内容が消えてしまうのであれば、何か回避方法はないでしょうか。
以上、よろしくご教唆ください。
No.2ベストアンサー
- 回答日時:
<ただ、イベントハンドラーの中から使う場合は、return false;だと
フォームがサブミットされないみたいです。>
==>
はちょっと誤解してました。
<form onsubmit="hoge(elm)">
----
<input type="submit" value="サブミット">
</form>
function hoge(){
-----
return false;
}
だとサブミットされないという事でした。この場合もjavascriptで
submitするとサブミットされます。
ちなみに、
その他、単純なパターンをいろいろ作って試しましたが、
[javascript submit()でセッションの内容が消えてしまう]
は再現出来ませんでした。(IEでもFirefoxでもchromeでも)
yyr466さん
色々調べていただきありがとうございます。
かなりいろんな問題があったようです。ただこの現象については、formを名前してで呼び出す際、同一ページにある複数のformの意図したフォームではないほうをsubmitしており、そこがセッションの接続、切断をしていたためでした。
お手数をおかけして申し訳ありません。しかしながらyyr466さんのアドバイスが心強かったため、早期のバグ発見にいたりました。
大変感謝しております。
もう一点、Forms['フォーム名']['name']としたところ、object型が返されたのですが、他のinputで<input name='name'.....
としており、このバグの発見に難航していました。
また、
<input name='submit'......
という箇所もあったのですが、このようなjavascriptの予約語を使うと、javaScriptで予約されているmethod名,property名が使用できない。というこれまた初心者のミスを犯しました。
他の方のご参考までに恥をあげております。
いろいろご教唆いただきありがとうございます。
No.1
- 回答日時:
これは仕様でしょうか。
==>仕様を見ると
まず、 HTMLFormElement の仕様
http://www.w3.org/TR/DOM-Level-2-HTML/html.html# …
Methods
submit
Submits the form. It performs the same action as a submit button.
No Parameters
No Return Value
No Exceptions
とあります。ボタンと同じはずです。
さらにMDCのDOMリファレンスの仕様を見ると
https://developer.mozilla.org/en/DOM/form.submit
This method does the same thing as clicking the form submit button.
Event handling markup like onsubmit="return false;" will not be evaluated when calling the submit method from code. The above code snippet will try and cancel the submit event which will not work when calling the submit method from code.
If a form control (such as a submit button) has a name or id of submit it will mask the form's submit method.
とありました。
やはり、ボタンクリックと同じ動きのはずです。
ただ、イベントハンドラーの中から使う場合は、return false;だと
フォームがサブミットされないみたいです。
後、考えられる原因は、どこかでcookieが弄られていて、同じセッションと
みなされなくなったとか、ブラウザーのセキュリティ設定とかが関係してる
のかも?
この回答への補足
ご回答いただきありがとうございます。
ブラウザーのセキュリティ設定など一旦調べてみることと、イベントハンドラからの動作とsubmit()の動きをチェックしてみます。改めて報告します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WCFのwsDualHttpBindingについて
-
コンピュータへの接続数が最大...
-
コネクション・セッション・ト...
-
セッションIDを取得したい
-
JSPでポップアップウィンド...
-
会社への勤怠届出にGoogleフォ...
-
自分のPCへアクセスしているコ...
-
遠隔操作されてる?
-
ショッピングカートのプログラ...
-
DVD-Rの「セッションを閉じる」...
-
パスワードつきホームページ ト...
-
思うように セッションの破棄...
-
消えてしまったCDの中身を元に...
-
c# 文字列の最後から1文字削除...
-
DataGridViewのチェックボック...
-
HTMLボタンの文字色を変え...
-
Accessの画面更新を一時的に停...
-
getParameterで値が取得できず...
-
エクセルVBA 別のブックのユ...
-
submitボタンにvalue属性の値で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コネクション・セッション・ト...
-
DVD-Rの「セッションを閉じる」...
-
コンピュータへの接続数が最大...
-
ブラウザの×(閉じる)ボタンの...
-
ブラウザを閉じずにセッション...
-
DVDの中身が表示されません。
-
セッションIDを取得したい
-
会社への勤怠届出にGoogleフォ...
-
フォームデータをlocation.repl...
-
ASP.NET 電卓計算
-
ルータのPPPのランプの色が変
-
セッションIDについて
-
SESSIDってなんですか?
-
自分のPCへアクセスしているコ...
-
DVDデータ追記時に、ポカ しま...
-
別ブラウザにセッションを渡す...
-
サーバー上の全セッション変数...
-
多段プロキシが原因?
-
CD-Rに追記したときに消え去っ...
-
ODBC-JDBCブリッジドライバを使...
おすすめ情報