![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
JSPファイルにて入力した値から最大値を求めるプログラムを作りたいのですが、
うまくJavaScriptが反応してくれません。
どこが間違っているのでしょうか?
下にソースコードを貼っておきます。
<%@ page contentType="text/html; charset=utf-8" %>
<!DOCTYPE html>
<html>
<head>
<title>
kadai
</title>
</head>
<body>
<input type="text" name="value" size=3 />
<input type="text" name="value" size=3 />
<input type="text" name="value" size=3 />
<input type="text" name="value" size=3 />
<input type="text" name="value" size=3 />
<button id="bt">最大値</button><span id="a"></span><br/>
<script type="text/javascript"><!--
var anchors = document.getElementsByTagName('value');
var bt=document.getElementById("bt");
var a=document.getElementById("a");
function max(){
var max = anchors[0];
for (var i=0, len=anchors.length; i<len ;i++) {
if (max < anchors[i]) {
max = anchors[i];
}
}
}
bt.addEventListener('click', max, false);
// --></script>
</body>
</html>
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは
課題のようなので、ヒントのみです。
>document.getElementsByTagName('value');
では、<value>という名称のタグを取得しようとしますが、存在しませんよね?
それなので、要素リストの数(length)は0となり、関数max内のループも処理されません。
>var a=document.getElementById("a");
全体の中で、変数aを利用していないので、あっても意味がないのでは?
>var max = anchors[0];
anchorsには入力ボックスの要素リストを取得する予定だと想像しますが、その際はmaxには最初の要素が代入されます。(要素そのもので、入力された値ではない)
あとで比較していることから、取得したいのではないでしょうか?
値を得たい場合は、要素のvalue属性を取得してください。
>if (max < anchors[i])
上述のようにanchors[i]は「要素」ですので、大小の比較をすることに意味はありません。
要素の値を比較するように修正したとして・・・
通常、入力ボックスの値は文字列として取得されます。
文字列としての比較はもちろん可能ですが、「最大値を求めるプログラム」というのは多分数値としての最大値を選求めたいのだと想像しますので、文字列での比較とは結果が異なってしまいそうです。
入力値を、明示的に数値化しておく方がよろしいかと。
(cf. Number、parseFloat、pareseInt 等)
その他
・入力項目が5個ありますが、空欄がある場合でも全部を比較の対象としてしまいます。
何らかの工夫が必要ではないでしょうか?
(ケースによっては正しい結果が得られません)
・ちゃんと計算できたとして、ご提示の内容では「計算したら終了」となっているので、見た目には何の変化もありません。(人間にとっては処理していないのと同じ)
結果をどこかに表示するなどの処理が必要ではないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- PHP php ログイン 1 2022/11/01 00:24
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
innerHTML内では改行は禁止?
-
javaScriptの変数をJavaの変数...
-
クリックさせたいが、click()が...
-
ボタンかリンクをクリックする...
-
JavaScriptのfileオブジェクト...
-
受け取ったパラメータが文字化け
-
formのfileの値をhiddenでも持...
-
javascriptで作成されたテーブ...
-
ボタンをクリックして文字を置...
-
追加ボタンを押した際に ok ボ...
-
jQueryでshow/hideが上手く行か...
-
ボタンで配列に代入
-
onclickが動作しない
-
return trueとreturn falseの用...
-
value内に変数を入れたい
-
プルダウン 項目が多いので先頭...
-
【jQuery】input nameの文字列...
-
フォームが空欄の時にフォーム...
-
tableの任意行にfocusをあてる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
追加ボタンを押した際に ok ボ...
-
クリックさせたいが、click()が...
-
onclickが動作しない
-
ボタンかリンクをクリックする...
-
javaScriptの変数をJavaの変数...
-
formのfileの値をhiddenでも持...
-
JSのボタンを複数う使うには
-
JavaScriptのfileオブジェクト...
-
innerHTML内では改行は禁止?
-
開いた子ウィンドウにあるボタ...
-
BackSpaceしたい(QNo.2734284の...
-
VB.NETで<Input>タグ、<text...
-
オンクリックで現在時刻の取得→...
-
JQueryでfunctionに引数としてI...
-
複数のテキストボックスの値の...
-
onClickがinput type="image"だ...
-
クリック→テキストボックスに追加
-
Javascriptで'(シングルクォー...
-
テキストフィールド未入力の場...
おすすめ情報