
ショッピングサイトを制作しているWebデザイナーです。Java Scriptについて質問です。
私が制作しているWebサイトは、商品ページのformでインプットされたデータをサーバー上のASPに渡す仕組みとなっています。
以前は、色・サイズなどオプション項目を選択しなくてもデータが渡されてしまっていたため、validateFormを使ってオプションが選択されていない場合はエラーメッセージを表示するように修正しました。
ところがvalidateFormを付けた後、1ページに2つ以上formがあると、2つ目以降のformで(データが届かないという)ASPエラーが出るようになってしまいました。
----------------------------
以前(validateFormを付ける前)のform action部分
<form action="https://~/productProcess.asp" method="get" id="form1">
----------------------------
新しい(validateFormを付けた後)のform action部分
<form action="https://~/productProcess_new.asp" method="get" name="form1" onsubmit="return validateForm(this);">
----------------------------
これは、validateFormを付けたためデータが送られないようになってしまったのでしょうか?1ページに2つ、3つformを付けるにはどのように修正すればよろしいでしょうか?
分かる方、ご回答よろしくお願いします。
No.1ベストアンサー
- 回答日時:
validateFormの仕様がわからないのでなんとも
いえませんが、validateForm(this)をしたときに
falseを返してきているためだと推測されます。
おそらくオプションが選択状態がただしくないの
でしょう。
サブミットのチェッカーが汎用的にできているか
よくよく検証なさった方がよろしいかと思います。
今回の不具合とは無関係だとは思いますが
以前idで管理していたものをnameに換えたのは
なにか意味があるのでしょうか・・・。
当然idやnameが被らないように注意してください。
もちろん1ページに複数のフォームは問題なく
おけます。
この回答への補足
yambejpさん、お返事ありがとうございます。
「当然idやnameが被らないように注意してください」というコメントを受け、現状のサイトでformが2つある(そして動作している)ページのソースを見てみたら、1つのページ内にいくつformがあっても全てform nameが"form1"となっており、input nameも全て被っていました。そのため、同じようにname(id)を全て被らせたら、ちゃんと動作するようになりました。
きっと、ASPのinputデータ受け取り側にform nameを被らせてほしい理由があるのだと思います。プログラムを作った担当者になぜname(id)を被らせているのか聞いてみます。
(その結果は後でお知らせします)
現状使用している入力・選択チェックのJavaScriptの関係で、formのnameを被らせているとのことでした。なので、JavaScript自体を修正することにします。
yambejpさん、ありがとうございました。
No.2
- 回答日時:
JavaScriptというかHTMLの仕様の問題ですが、
ひとつのページにformが複数ある場合は、submitしたformの内容しかサーバーには送信されないはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptでASPにデータを渡す
-
別ウィンドウへのsubmitの挙動...
-
JavascriptからSubmitして画面...
-
iframe内のformをサブミットす...
-
onclickをEnterキーでも行いたい
-
return trueとreturn falseの用...
-
value内に変数を入れたい
-
javaScriptの変数をJavaの変数...
-
CSVファイルを読みこみ、プルダ...
-
プルダウンで選択すると、DBの...
-
ラジオボタンにタブインデック...
-
javascript教えてください
-
confirm()で表示したダイアログ...
-
VBScriptでpingを実行(ブラウザ...
-
hiddenのvalueの値を変えたい
-
VB.NETで<Input>タグ、<text...
-
ラジオボタンでの動的項目の変...
-
時間の選択に関して
-
ハイパーリンクを別ウインドウ...
-
sessionStorageを調べています。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
submitした値を返したい
-
1つのform内に2つのsubmitボタ...
-
別ウィンドウへのsubmitの挙動...
-
javascriptでASPにデータを渡す
-
指定したタグを書き換えるには?
-
FormのonsubmitでJavaスクリプ...
-
iframe内のformをサブミットす...
-
1つのページにformを2つ設置。2...
-
JavaScript:現在フォーカスの...
-
JavascriptからSubmitして画面...
-
POST時に要素を削除してからPOST
-
フォームのvalueに配列を格納す...
-
リンク先アドレスの一部にテキ...
-
JAVASCRIPT
-
タブキーでなくエンターキーで...
-
Javascript IEで「識別子があり...
-
focus()が上手くいかない
-
formのsubmitイベントの発生に...
-
inputのvalueを変数として使うには
-
javascript による POST 送信時...
おすすめ情報