ttp://neil.fraser.name/software/tablesort/
こちらを参考にして
JavaScriptでテーブルの並び替えをしてみたんですが
並び替え自体は出来たんですが
FormのPOST送信がうまくできません
IE6では正常なんですが
FireFoxではパラメータを取得することができません
ソース例
================================
・・・・
<script language='javascript1.2' src='tablesort.js'></script>
</head>
<body>
<table>
<THEAD>
<tr>
<td label="nocase"></td>
<td label="nocase">名前</td>
<td label="case">メールアドレス</td>
</tr>
</THEAD>
<TBODY>
<form name="userlist" method="POST" action="aaa.asp">
<tr>
<td><input type="radio" name="UserNo" value="0"></td>
<td>太郎</td>
<td>taro@sample.com</td>
</tr>
<tr>
<td><input type="radio" name="UserNo" value="1"></td>
<td>次郎</td>
<td>jiro@sample.com</td>
</tr>
<tr>
<td><input type="radio" name="UserNo" value="2"></td>
<td>三郎</td>
<td>saburo@sample.com</td>
</tr>
</TBODY>
</table>
<input type="submit" value=" 動作 ">
</form>
================================
tablesort.jsを改良したり
HTMLを工夫することによって
どのブラウザでも正常に動作するようにするには
ならないでしょうか?
No.7ベストアンサー
- 回答日時:
#4,#6です。
前回書いたように、Firefoxでソートのスクリプトを組み込み、実行しても値が送信される事は確認済みです。(間違ったhtmlの状態でソートを実行すると送信されない現象も確認してます)
あと思いつくのは他のJavascriptの競合/干渉、
まだ他にHTML的におかしな部分がある、とかです。
他のJavascriptを利用しているかわかりませんが、
とりあえず、htmlの妥当性でもチェックしてみては?
http://openlab.ring.gr.jp/k16/htmllint/htmllint. …
No.8
- 回答日時:
こんちくは。
>>質問に書いたソース例は例なので
まぁ、その気があるなら、例でもなんでも、もんのすんごく簡単なソース書いて試してみればいいんすよ。
テーブル2行、フォームでかこって、テーブルソート機能くっつけて。。。
それで試す。
まずは、「どこに原因があるかの『切り分け作業』」が肝心かと思います。
自分だったら、「まずは、テーブルソートのJavaScriptファイル外した状態で正常に動くんですか??」って書いたので、
JavaScriptファイルを外した状態、外さなかった状態で試して、違いが出るなら、JavaScriptファイルをまず疑いますが。
>>FireFoxでは正常に動作してくれないのです
>>(並び替えを1度もしなければ正常です)
これを素直に受け取っていいのならば、そのJavaScriptファイルでしょ。。。という感じではありますが。。。
ソートの際に使われてるJavaScript内の関数で、FireFoxに対応してないもの等あったりはしないもんですかね?
結構、ブラウザによってJavaScriptの対応も違いますからねぇ。。。(汗
ソートしなきゃ思い通りに動く。
なら、ソートした際に通るソース部分をまず疑うべきかと個人的には思いました。
No.6
- 回答日時:
#4です。
修正して試したとの事ですが、SUBMITの位置は?<form>
<table>
・・・・
</table>
<input type="submit" value=" 動作 "> ←(1)ここら辺が妥当
</form>
<input type="submit" value=" 動作 "> ←(2)フォームの外にsubmitボタンを置いているのだとしたらフォームの内容は送信されない。
(1)のようにしてソート後、値がブラウザから送信される事は確認しました
No.5
- 回答日時:
> FireFoxではパラメータを取得することができません
パラメータを取得するのは、どこが取得するのですか?
サーバーの<form>の値?
サーバーのスクリプトのどこかの関数?
Firefoxの何の関数?
何をする関数?
呼び出し方法は?
> (並び替えを1度もしなければ正常です)
とのことですから、送信そのものではなく、テーブルのソートに問題があるのでは?
それから、
<input>の順番を変えたところで、送信する順番は不定です。
(HTMLでも、送信する順番を規定していません)
ほとんどのブラウザで、inputの順番どおりに送信しますが、
<form method="get">
<input type="text" name="t1" value="value1">
<input type="text" name="t1" value="value2">
<input type="hidden" name="id" value="user123">
<input type="submit" value="send">
</form>
こういうHTMLを
?id=user123&t1=value1&t1=value2
?t1=value2&t1=value1&id=user123
<input>の最初から並べても、後ろから並べても、どちらでもかまいません。
並べ替えが必要な場合は、サーバー側で適切な処理を施す必要があります。
> ANo.2~4
文法上はどうあれ、<tbody>や<table>と<form>の位置関係をどの様に書いても
実装上は、<form>の中に<input>が入っていれば、そのvalueは送信されます。
(HTMLの文法でも、<form>の中に入っている<input>を送信する、となっていて、<table>との位置関係までは言及されていません)
>punipunipunikoさんへ
実装上は問題がなくても、
デファクトスタンダード(広く使われているブラウザに合わせる)ではなく、デジューレスタンダード((この場合は)W3Cが定義したHTML)に合わせるほうが良いと思います。
デファクトスタンダードは、IE以外は、その規格、仕様が出されていないことが多く、
バグなのか正常な動作なのかがわかりにくいことがあります。
この回答への補足
パラメータを取得するのはaaa.aspです
<form>のaction先です。
><input>の順番を変えたところで、送信する順番は不定です
この並び替えを必要としてるのではありません
あくまで、画面上で見た目並び変わっていたらいいだけです。
>デジューレスタンダード((この場合は)W3Cが定義したHTML)
一度、仕様を考えなおしてみたいと思います
No.4
- 回答日時:
文法的にtbody直下にはtrしか置けない事になっています。
また開始タグと終了タグは正しく入れ子構造にする必要があります。
なので、tableの前にformを置くのが妥当になります。
javascriptの中身は見てませんが
たまたまソートしていない時に問題がなくても
スクリプトで操作した結果、予期しない動作になってもしかたがありません。
まずはform,/formの位置を直して試してみては。
この回答への補足
<form>を<table>の外に出しました
<form>
<table>
・・・・
</table>
</form>
でも駄目でした
No.2
- 回答日時:
</THEAD>
<TBODY>
<form name="userlist" method="POST" action="aaa.asp">
こうなっているとFORMタグはテーブルを内包する状態と言えない。
</THEAD>
<form name="userlist" method="get" action="1.html">
<TBODY>
せめてこうすればTBODYを内包するので送信可能なはず。
No.1
- 回答日時:
>>どのブラウザでも正常に動作するようにするには
そこらへんは結構面倒なはずなのでとりあえずスルー。
あれですよ。
まずは、テーブルソートのJavaScriptファイル外した状態で正常に動くんですか??
<form>~</form>
と<submit>だけあれば、とりあえず、「aaa.asp」で情報取得は可能かと思いますが。。。
その状態でもFirefox側で動きませんかね?
この回答への補足
質問に書いたソース例は例なので
正常かは不明ですが
実際にはちゃんと動いています
(パラメータを取れている)
情報が多くなってきたので
テーブルの並び替え機能を追加したかったんですが
FireFoxでは正常に動作してくれないのです
(並び替えを1度もしなければ正常です)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- Perl PERL 1 2022/04/26 14:15
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
localStorageでのcheckbox制御
-
jQuery テキストボックス読み取...
-
チェックボックス付きのテーブ...
-
文字数を数える際に空白、改行...
-
innerHTMLで自動生成された表を...
-
formで項目を連結したい
-
ボタンを押下するとテキストフ...
-
投稿の編集について
-
複数のselect値で1つも選択され...
-
Javascriptで自動的に計算する...
-
Javascriptの電卓で最初の何も...
-
JavaScriptで、コピーボタンを...
-
jQueryで合計を出したい
-
return trueとreturn falseの用...
-
Selectの中身をfor文で入れる
-
プルダウン選択を変更すると、...
-
onClickとsubmitの処理順序
-
ラジオボタンにタブインデック...
-
javascriptでセレクトボックス...
-
TextBoxに半角数字以外を入れた...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScriptの「.querySelectorA...
-
複数のselect値で1つも選択され...
-
チェックボックス付きのテーブ...
-
ラジオボタンが選択されたらテ...
-
入力チェックの外部スクリプト...
-
Javascriptの電卓で最初の何も...
-
文字数を数える際に空白、改行...
-
画面の2重起動をチェックする...
-
画面表示とともにtableの指定の...
-
jQueryで合計を出したい
-
localStorageでのcheckbox制御
-
JavaScriptによる自動計算フォーム
-
同一nameの input type="text"...
-
テーブル内のチェックボックス...
-
formで項目を連結したい
-
クリックしたラジオボタンの行...
-
Javascriptで自動計算の合計の...
-
ラジオボタンを一括で操作する...
-
送信ボタン連打を抑止したいです
-
ボタン押下すると一行テキスト...
おすすめ情報