- 締切済み
<form>の<output>について
<output>に表示させた値に最小値を設定する方法はありませんか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
>判定してNGだったら、ダメな理由を表示して、入力フォームのページに留まり、判定してOKだったら、入力結果を表示するページに移行する こちらを参考に。 http://blog.livedoor.jp/sasata299/archives/51373855.html 上記では「入力がブランクだったら、blank_check()関数で判定して、エラーメッセージを表示してblank_check()関数の戻り値をfalseにして、そうじゃなかったら、blank_check()関数の戻り値をtrueにして」という判定をしています。 ですので、上記のblank_check()関数をa_b_value_check()という名前に変更して「aとbを足したのが10未満だったら警告を出してfalseを返し、10以上だったらtrueを返す」という判定に変更して <form action="~~~" onsubmit="return a_b_value_check()"> とします。 formタグのonsubmitは「イベントハンドラがfalseを返すとページに留まり、trueを返すとactionで指定した動作をする」ので、a_b_value_check()が返す値(真か偽)によって「エラー表示してそのままそのページに留まる」か「入力を受け入れて次ページに進む」か、処理を変える事ができます。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
>どこに何を書いたら最小値未満かどうか判定できますかね? 「判定するだけ」では、目的は達成できませんよね? 「判定した結果、aとbを足したのが10未満だったら、〇〇を××したい」とやらないと、貴方の目的は達成できない筈です。 そして、この質問では「〇〇を××したい」と言う部分が不明ですから、これ以上の回答は不可能です。 「判定だけなら猿でも出来る。判定結果を元に何をどうしたいのかが重要」です。 例えば「判定してNGだったら、ダメな理由を表示して、入力フォームのページに留まり、判定してOKだったら、入力結果を表示するページに移行する」など、具体的に「何をどうしたいのか」を決めて下さい。 判定した結果だけを表示したいなら <form oninput="ab.value = (((Number(a.value) + Number(b.value)) >= 10);> <output name="ab"></output> </form> ってやれば、真か偽か、どっちかが表示されますよね。 でも「やりたいこと」は「そういうことじゃない筈」ですよね?
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
><output>に表示させた値に最小値を設定する方法はありませんか? <input>には「最小値属性」がありますが、<output>には最小値属性はありません。 「<output>」は「何らかの計算結果を表示するタグ」ですから「何らかの計算」の段階で「最小値未満の値かどうかの判定」をすべきです。
補足
なるほど~! <form oninput="ab.value = Number(a.value) + Number(b.value);> <output name="ab"></output> </form> って感じで書いてるんですけど、どこに何を書いたら最小値未満かどうか判定できますかね? ちなみにaとbの合計の最小値が10 といった形にしたいのですが。。
- tatsucoo
- ベストアンサー率35% (32/90)
<input> のことでしょうか? 参考までに http://www.htmq.com/html5/input_min.shtml
補足
猿以下で大変恐縮ですが恥を忍んで補足の補足をさせていただきます。 判定してNGだったら、ダメな理由を表示して、入力フォームのページに留まり、判定してOKだったら、入力結果を表示するページに移行する こちらおっしゃるとおりです。そういった挙動にさせるにはどうしたらよろしいでしょうか。