https://oshiete.goo.ne.jp/qa/9548285.html
このソースを動かすと、立替(ttk)を無入力でも問題なく動くのですが、合計がNaNになるので、無入力のときは自動的に0を入れて(初期値が0でも出来るのかな?)テキストボックス内にも0を最初から表示させておく。
というようにしたいです。
どうすればいいでしょうか。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは
回答が無いようなので・・・
>無入力だと表示されたままで、何かを入力した瞬間に消えるやつですね。
いわゆるプレースホルダという機能です。
placeholder属性を利用することで、実現可能です。
http://myakura.github.io/n/placeholder.html
とはいっても、これは未入力時に「入力のガイド」として利用される文字列ですので、未入力の際のデフォルト値としての働きはありません。
(仮にプレースホルダで「0」を表示させておいても、値は未入力のままになります)
デフォルトの値などを設定なさりたい場合は、スクリプト側で処理する必要があります。
(未入力ならデフォルト値(0など)を採用すれば良いだけなので…)
>合計がNaNになるので、無入力のときは自動的に0を入れて
なぜNaN表示になるか、理解なさっているでしょうか?
NaNはNot-A-Numberの意味です。
https://developer.mozilla.org/ja/docs/Web/JavaSc …
通常、input要素などの値(value値)を取得した際、その内容は文字列として返されます。
javascriptでは文字列⇔数値の変換をスクリプトエンジンが適宜行ってくれているので、一見便利ではあるのですが、変換不可能なものが存在するとNaNなどのエラーになります。
ですので、未入力の場合だけでなく、"五百"などと数値を文字で入力した場合でも同様のエラーになるでしょう。
このような場合への対処として、HTML5では、input要素にtype="number"を指定することで、数値入力に限定することができるようになりました。
https://developer.mozilla.org/ja/docs/Web/HTML/E …
これを利用することで、他の文字列の入力を避けることはできますが、未入力だけは残ってしまいます。
それなので、結局は、スクリプト側でのチェック(またはデフォルト値の設定)は避けられないところです。
具体的には、
v = lement.value; は(内容が数値であっても)文字列として返しますので、きちんと処理するのなら
v = parseInt(Element.value, 10); などとして明示的に数値化しておくほうが良いです。(この例では整数化です)
この際に、数値化できない値(未入力など)に対してはNaNが返されますので、
if(isNaN(pareseInt(Element.value))) などで判断して、デフォルト値(0など)を設定すればよいでしょう。
簡略化して記述するなら、or演算を利用して
v = parseInt(Element.value, 10) || 0; でも同様の結果を得ることができます。
更に、簡略化するなら
v = Element.value | 0; でも、ほぼ同様の結果となります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) 1の行を固定した上でVBAを用いて日付順に自動並べ替え 2 2022/06/06 15:09
- その他(パソコン・スマホ・電化製品) ワードでテキストボックス内の文字を連動させない方法 2 2023/02/09 16:56
- Windows 10 パソコン初期化の件です 2 2022/06/05 11:05
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- 画像編集・動画編集・音楽編集 musescore3.5 で再生時、ページスクロールしない 1 2022/11/07 19:29
- 日本語 読解力の質問です(Excel含む) 12 2022/08/02 13:25
- WordPress(ワードプレス) WordpressでYouTubeの埋め込みができない。 1 2022/10/26 01:08
- 物理学 物理基礎で、力学的エネルギーと動摩擦力のことを習ったのですが、 あらい斜面の下から物体を滑り上がらせ 2 2022/09/11 10:12
- Android(アンドロイド) 機種変更後のスマホで自宅wifiが繋がりません。 6 2023/06/20 14:35
- 格安スマホ・SIMフリースマホ E-SIM電話番号不明表示 1 2023/07/23 19:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onClickとsubmitの処理順序
-
VBScriptで未入力のチェック(...
-
ASP エラーチェック VBScript
-
テキストエリア入力文字数の表...
-
テキストフィールドに入力した...
-
日付入力欄の表示形式を自動的...
-
最初の入力を判断
-
複数の入力欄についての入力チ...
-
vbsでフォームに値を入力できない
-
フォームの値が0だったら空白...
-
PDFフォームで条件つき金額を表...
-
テキストボックスを無効にする...
-
return trueとreturn falseの用...
-
プルダウン 項目が多いので先頭...
-
submitボタン押下時にPOSTされ...
-
onchangeイベントを強制的に発...
-
大文字か小文字かを判断する方法
-
【jQuery】input nameの文字列...
-
Selectボックスの幅を自動で広...
-
ラジオボタンにタブインデック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onClickとsubmitの処理順序
-
テキストボックス入力を半角英...
-
PDFフォームで条件つき金額を表...
-
フォームの値が0だったら空白...
-
javascriptで入力フォームが空...
-
条件により、リンク先に画面遷...
-
フォームから入力すると、入力...
-
VBScriptで未入力のチェック(...
-
日付入力欄の表示形式を自動的...
-
Javascriptが機能せず原因が分...
-
submit後、同じ入力欄に戻らせ...
-
テキストフィールドに入力した...
-
JSPとJavaScriptの連携について...
-
最初の入力を判断
-
イベント発生時に入力待ち状態...
-
過去日付、年の切り替え
-
カレンダーをテキストエリアに...
-
入力した文字を大文字に変換し...
-
リンククリック → テキスト自...
-
javascriptで入力禁止文字をチ...
おすすめ情報
テキストボックス内にあらかじめ表示させておくというのは、gooの検索窓のように薄く表示させて入力の邪魔にならないようにする感じです。
無入力だと表示されたままで、何かを入力した瞬間に消えるやつですね。
valueだとそのまま値として0が入ってしまうので消す手間がかかります。