OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

submit()について

  • 困ってます
  • 質問No.148134
  • 閲覧数201
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 74% (121/163)

突然ですがアドバイスをお願いいたします。

<SCRIPT LANGUAGE="JavaScript">
<!--
function aSubmit(){
document.Form1.action='xxxxx';
document.Form1.aaaaa.submit();
}
-->
</SCRIPT>

これで“Form1”内のNAMEが“aaaaa”とついた
フォームの値を送信できますよね、
ここで質問なのですが、
例えばNAMEが“aaaaa”のフォームの他に
NAMEが“bbbbb”というフォームがあったとして、
“aaaaa”と“bbbbb”の値を同時に送信したいときには、

<SCRIPT LANGUAGE="JavaScript">
<!--
function aSubmit(){
document.Form1.action='xxxxx';
document.Form1.('aaaaa,bbbbb').submit();
}
-->
</SCRIPT>

とこんな書き方でも大丈夫なのでしょうか?
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル11

ベストアンサー率 53% (199/370)

No.2の方が書いていらっしゃるDISABLEDプロパティの方は、HTML4.01の仕様的にも、満足なFORM部品として扱わないとされていますので、送信されることはないでしょう。(試していないので、IEの実装ミスで送信されてしまうかもしれませんが。)

これに対応していないNetscape4.xに関してですが、taint()メソッドはよく存じませんけど、なんとなく、

Description
Tainting prevents other scripts from passing information that should be secure and private, such as directory structures or user session history. JavaScript cannot pass tainted values on to any server without the end user's permission.

を読む限りでは、「ユーザの許可なくして送信できない」→許可すれば送信される
で、なにか違うように思えるんですよね。


現状で現実的なのは、やっぱりhiddenばかりの送信用Form要素を作っておいて、送信するときは、表示用のFormの中の送信したい名前・値のセットをそっちにコピーしてそれをsubmitする、って方法なのかな?
お礼コメント
megane

お礼率 74% (121/163)

回答ありがとうございます。

>現状で現実的なのは、やっぱりhiddenばかりの送信用Form要素を作っておいて…

やっぱりそれが無難でしょうか。
その方法なら何とか出来そうです。
ちょっと複雑ですけど確実ですよね。
投稿日時 - 2001-10-09 18:33:40
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル11

ベストアンサー率 53% (199/370)

>これで“Form1”内のNAMEが“aaaaa”とついたフォームの値を送信できますよね、 できますか?? Form1って、フォームオブジェクトですよね? submit()はフォームオブジェクトに対しておこなわれますから、 >document.Form1.aaaaa.submit(); という書き方はおかしくないですか? document.Form1.submit(); と書 ...続きを読む
>これで“Form1”内のNAMEが“aaaaa”とついたフォームの値を送信できますよね、
できますか??
Form1って、フォームオブジェクトですよね?
submit()はフォームオブジェクトに対しておこなわれますから、
>document.Form1.aaaaa.submit();
という書き方はおかしくないですか?
document.Form1.submit();
と書くべきでしょう。
ですから、そもそも
>document.Form1.('aaaaa,bbbbb').submit();
という書き方が可か、不可か、という以前の問題だと思いますが。

もし、aaaaaやbbbbbもForm1と同列のフォームオブジェクトであるという前提ならば
 →フォームは階層構造にできませんので、Form1の中にaaaaaなどというフォームは入れられません

もし、aaaaaやbbbbbは、フォーム(Form1)に内包される要素だという前提ならば
 →From1.submit()をした時点で、Form1に内包されるすべてのForm要素が送信されるので、「“aaaaa”と“bbbbb”の値を同時に送信したいときには」という疑問は不要です。常に同時に送信されます。
補足コメント
megane

お礼率 74% (121/163)

sightさん、いつもお世話になっております。
一ヶ月ほど前にも同じ様な愚問に
回答していただいた者です。
前回のはおかげさまで何とかクリアできました。

そしてまた愚問!
ほんと勉強が全然進展してません…。
投稿日時 - 2001-10-09 15:55:20
お礼コメント
megane

お礼率 74% (121/163)

sightさん回答ありがとうございます。
だめですか…。結構自信あったんですけど…。

>常に同時に送信されます。

はい。そうなんですけど、どうしてもたくさんある
フォームの全部の値を送信するのではなく、
送りたいものだけ送信しようと試みたのです。
もう一度見直してみたいとおもいます。
ありがとうございました!
投稿日時 - 2001-10-09 15:48:10


  • 回答No.2
レベル7

ベストアンサー率 50% (7/14)

ネットスケープならばデータテイント機能を使って、データの送受信を制御できます。 フォーム内にある特定のエレメントを送信したくない時は untaint(document.フォーム名.フィールド名); 送信可能にする時は taint(document.フォーム名.フィールド名); とJavScript内で記述すればOKだと思います。 以上はネットスケープのみの記述方法です。 IEはD ...続きを読む
ネットスケープならばデータテイント機能を使って、データの送受信を制御できます。

フォーム内にある特定のエレメントを送信したくない時は
untaint(document.フォーム名.フィールド名);
送信可能にする時は
taint(document.フォーム名.フィールド名);

とJavScript内で記述すればOKだと思います。
以上はネットスケープのみの記述方法です。

IEはDISABLEDプロパティを操作することで、同じ制御をすることができるので、
JavaScriptはクロスブラウザな書き方をしないといけないと思います。

でも、データテイント機能はそのままじゃ使えないかもなぁ~
お礼コメント
megane

お礼率 74% (121/163)

回答ありがとうございます。

>JavaScriptはクロスブラウザな書き方をしないといけないと思います。

はい。ほんとですね。
私もできればクロスブラウザで行ってみたいと思っています。
投稿日時 - 2001-10-09 18:30:38
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ