- - PR -
JavaScriptでセットした値がSubmitするとなくなる
1|2|3|4
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-02-27 16:24
msoです。
また、わからないことがあるので知恵を貸してください。 ASP.NETでVS2002をつかって開発をしています。 そこで、JavaScriptをつかいinput type="hidden"に 値を渡し、そのままSubmit()させるとhiddenに 格納したはずの値がRequest.Paramsで取得することが できません。取得しようとすると""になっていました。 JavaScriptでセットした値はすぐ下にAlertで表示させた ところ正しく入っていることは確認できています。 普通のHTMLの書式ミスかと思い、自分で似たようなものを 作成したのですが期待通りの動作をしてくれました。 (一番下に参考にのせておきます) そこで質問があります。 ASP.NETでJavaScriptでHiddenに値をセットして、 すぐにSubmitすると値はRequestで取得することが できないのでしょうか?? 私が作ったテスト用のHTMLファイル (これは期待通りの動作をしてくれます) <html> <head><title>test</title></head> <script> function test_a(a,b,c){ document.all['test_1'].value = a; document.all['test_2'].value = b; document.all['test_3'].value = c; document.forms(0).submit(); } function DataReceive(){ if (location.search.substring(1, location.search.length)) { //?以降の文字を取得する var data = location.search.substring(1, location.search.length); //エスケープされた文字をアンエスケープする data = unescape(data); var a = new Array(); a = location.search.substring(1, location.search.length).split("&"); var a0 = Array(); a0 = a[0].split("="); document.forms(0).test_1.value = a0[1]; var a1 = Array(); a1 = a[1].split("="); document.forms(0).test_2.value = a1[1]; var a2 = Array(); a2 = a[2].split("="); document.forms(0).test_3.value = a2[1]; } } window.onload = DataReceive; </script> <body> <form method="post"> テキストボックスには上からa,b,cと入れた後にsubmitさせます<br><br><br> <a href="javascript:void(0)" onclick="javascript:test_a('a','b','c')";return false;">click</a><br> <input type="text" id="test_1" name="test_1"><br> <input type="text" id="test_2" name="test_2"><br> <input type="text" id="test_3" name="test_3"><br> </form> </body> </html> ------------------------------ おかしいところをちょっと修正 [ メッセージ編集済み 編集者: mso 編集日時 2004-02-27 16:25 ] | ||||
|
投稿日時: 2004-02-27 16:37
Alertで確認した際にはきちんとValueが入っていたとのことですので、他に考えられる可能性としては……HIDDENの位置でしょうか。 SubmitされているFORMの中にちゃんと配置されていないのではないかなぁ……くらいしか思い付きません。 | ||||
|
投稿日時: 2004-02-27 16:41
お返事ありがとうございます。 hiddenの位置はしっかりと確認してあり、<form>タグの間に あることは何度も確認しました。 通常、なかなか発生しないレアなパターンだと思うのですが、 どうしても解決することができません。 何か確認してみると良いことなど、なんでもいいので 助言をお願いします。 | ||||
|
投稿日時: 2004-02-27 16:48
ほむらです。
W3CのHTML Validator流してみたらどうなります? 僕が以前ポカしたのはダブルコーテーションが閉じてなかったり 要素が閉じてなかったり(/がなかった)で正常に解析できなかったのが 原因だったことがあります。 あとはMozillaのDOMインスペクションつかって見るとか。。 name属性が違うなんて落ちがあったことも #この場合はスクリプトが走らなかったときですが。。。 | ||||
|
投稿日時: 2004-02-27 17:40
W3CのHTML Validator流してHTMLの構文チェックをしたのですが、 特におかしいものはみつかりませんでした。 (alignがないよーとかはたくさんありましたが。。。) | ||||
|
投稿日時: 2004-03-01 10:27
ども、ほむらです。
タグとかのミスはなかったんですね。 僕も閉じミスとかかと思っていたのですが。。。 ------ ところで、POSTメソッドでなくてGETメソッドした時にはデータは 入っていますか? URLにのっていれば、受け取った側のミスになるのですけど 意図どおりに動いているのですよね〜正常に動くソースがある時点で^^;;;; disabledを設定しているなんてことないですよね? #ほかに思い当たる問題がありません。(涙 | ||||
|
投稿日時: 2004-03-01 12:41
GETしたときにはすでにデータがセットされていません。 なので、送るときに何かおかしい現象が発生しているみたいです。 あと、質問です。 ”disabledを設定”ってのは何についてでしょうか? お恥ずかしいですが、何をdisabledに設定しているのかわかりません。 | ||||
|
投稿日時: 2004-03-01 13:10
なんか、おかしくないですか?転記ミスでしょうか? onclick="javascript:test_a('a', 'b', 'c');return false;" ダブルクォーテーションの位置 「false」なの? |
1|2|3|4
次のページへ»