- PR -

JavaScriptでセットした値がSubmitするとなくなる

投稿者投稿内容
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 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 ]
永井和彦
ぬし
会議室デビュー日: 2002/07/03
投稿数: 276
お住まい・勤務地: 東京都
投稿日時: 2004-02-27 16:37
引用:

msoさんの書き込み (2004-02-27 16:24) より:

ASP.NETでVS2002をつかって開発をしています。
そこで、JavaScriptをつかいinput type="hidden"に
値を渡し、そのままSubmit()させるとhiddenに
格納したはずの値がRequest.Paramsで取得することが
できません。取得しようとすると""になっていました。

JavaScriptでセットした値はすぐ下にAlertで表示させた
ところ正しく入っていることは確認できています。



Alertで確認した際にはきちんとValueが入っていたとのことですので、他に考えられる可能性としては……HIDDENの位置でしょうか。
SubmitされているFORMの中にちゃんと配置されていないのではないかなぁ……くらいしか思い付きません。
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-02-27 16:41
引用:

永井和彦さんの書き込み (2004-02-27 16:37) より:

Alertで確認した際にはきちんとValueが入っていたとのことですので、他に考えられる可能性としては……HIDDENの位置でしょうか。
SubmitされているFORMの中にちゃんと配置されていないのではないかなぁ……くらいしか思い付きません。



お返事ありがとうございます。
hiddenの位置はしっかりと確認してあり、<form>タグの間に
あることは何度も確認しました。
通常、なかなか発生しないレアなパターンだと思うのですが、
どうしても解決することができません。

何か確認してみると良いことなど、なんでもいいので
助言をお願いします。
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2004-02-27 16:48
ほむらです。
W3CのHTML Validator流してみたらどうなります?

僕が以前ポカしたのはダブルコーテーションが閉じてなかったり
要素が閉じてなかったり(/がなかった)で正常に解析できなかったのが
原因だったことがあります。

あとはMozillaのDOMインスペクションつかって見るとか。。
name属性が違うなんて落ちがあったことも

#この場合はスクリプトが走らなかったときですが。。。
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-02-27 17:40
引用:

ほむらさんの書き込み (2004-02-27 16:48) より:
ほむらです。
W3CのHTML Validator流してみたらどうなります?

僕が以前ポカしたのはダブルコーテーションが閉じてなかったり
要素が閉じてなかったり(/がなかった)で正常に解析できなかったのが
原因だったことがあります。

あとはMozillaのDOMインスペクションつかって見るとか。。
name属性が違うなんて落ちがあったことも

#この場合はスクリプトが走らなかったときですが。。。



W3CのHTML Validator流してHTMLの構文チェックをしたのですが、
特におかしいものはみつかりませんでした。
(alignがないよーとかはたくさんありましたが。。。)

ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2004-03-01 10:27
ども、ほむらです。
タグとかのミスはなかったんですね。
僕も閉じミスとかかと思っていたのですが。。。
------
ところで、POSTメソッドでなくてGETメソッドした時にはデータは
入っていますか?

URLにのっていれば、受け取った側のミスになるのですけど
意図どおりに動いているのですよね〜正常に動くソースがある時点で^^;;;;

disabledを設定しているなんてことないですよね?

#ほかに思い当たる問題がありません。(涙
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-03-01 12:41
引用:

ほむらさんの書き込み (2004-03-01 10:27) より:
ども、ほむらです。
タグとかのミスはなかったんですね。
僕も閉じミスとかかと思っていたのですが。。。
------
ところで、POSTメソッドでなくてGETメソッドした時にはデータは
入っていますか?

URLにのっていれば、受け取った側のミスになるのですけど
意図どおりに動いているのですよね〜正常に動くソースがある時点で^^;;;;

disabledを設定しているなんてことないですよね?

#ほかに思い当たる問題がありません。(涙




GETしたときにはすでにデータがセットされていません。
なので、送るときに何かおかしい現象が発生しているみたいです。

あと、質問です。
”disabledを設定”ってのは何についてでしょうか?
お恥ずかしいですが、何をdisabledに設定しているのかわかりません。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-01 13:10
引用:

msoさんの書き込み (2004-02-27 16:24) より:

<a href="javascript:void(0)" onclick="javascript:test_a('a','b','c')";return false;">click</a><br>


なんか、おかしくないですか?転記ミスでしょうか?

onclick="javascript:test_a('a', 'b', 'c');return false;"

ダブルクォーテーションの位置
「false」なの?

スキルアップ/キャリアアップ(JOB@IT)