超初心者です。
Cの勉強をしていたのですが、javascriptにも手を出してみました。
変数の考え方が違うせいか、理解が間違っているのか・・・
ブラウザ上でテキストボックスに数値を記入して、別なテキストボックスに計算結果を返すソースを考えていました。
以下のような感じです。
HTML
------------------------
<form>
林檎 100円 * <input type=text name=txt7>個
<input type=button value="計算" onClick="func4(txt7)"><br>
合計金額は<input type=text name=txt8>円になります。
</form>
-------------------------
JS
------------------------
function func4(keisan){
document.form2.txt8.value=keisan*100;
}
------------------------
上記のように変数を使うとエラーになります。「NaN」が返ってきます。
変数を使用せずに、直接受け取る値を計算すれば出来たのですが・・・
ブラウザからなにかを入力させ、それを変数に代入した場合は数値(INT)型にはならないのでしょうか??
詳しい方、解説をお願いします・・・
No.1ベストアンサー
- 回答日時:
> ~value="計算" onClick="func4(txt7)"
これだと、func4に"txt7"という変数(おそらく未定義)を渡すという
意味になります。以下のように記述してください。
onClick="func4(document.getElementsByName('txt7')[0]))"
あるいは"func4(document.form.txt7)"
> document.form2.txt8.value=keisan*100;
引数の keisan はテキストボックというオブジェクトなので、計算
できません。(数値じゃない!)
また、テキストボックスの中身は何でしょう?文字列ですね。
数字しか書いてなくても文字列です。だから 4 + 5 は "45"のように
文字連結になってしまいます。掲題のように乗算など不可能です。
先ず、中身を得るためvalueプロパティを参照しましょう。
また、これを数値化するためparseIntやparseFloatを使います。
document.form2.txt8.value=parseInt(keisan.value)*100; または
document.form2.txt8.value=parseFloat(keisan.value)*100;
回答ありがとうございます。
テキストボックスに入力されたデータだけを受け取っていると思い込んでいました。
「オブジェクトそのものを受け取っている」という考え方でよいのでしょうか?
とりあえず
parseInt oarseFloatは初めてみたので、ひとまずこれを覚えてからもう一度挑戦します。
No.2
- 回答日時:
まぁせっかくだからthisをつかってオブジェクト渡しの方が
いいでしょう
<script>
function func4(obj){
var f=obj.form;f.elements["txt8"].value=parseInt(f.elements["txt7"].value)*100;
}
</script>
<form>
林檎 100円 * <input type="text" name="txt7">個
<input type=button value="計算" onClick="func4(this)"><br>
合計金額は<input type="text" name="txt8">円になります。
</form>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クリックの度に加算していくには?
-
hiddenのvalueの値を変えたい
-
セレクトボックスの初期選択状...
-
value内に変数を入れたい
-
テキストボックスに入力された...
-
javascriptにてHTMLのhiddenエ...
-
3桁区切りのカンマをつけたい...
-
name属性が同じフォームが複数...
-
VB.NET DateTimeの型について
-
jsで、配列内の文章を改行する...
-
クイズ作成:15個の問題から5個...
-
sessionStorageを調べています。
-
フォームに入力された数値を計...
-
ラジオボタンとテキストを同時...
-
CDOMailで本文テキストの文字コ...
-
javascriptでhiddenに二次元配...
-
Java Script の "this"
-
複数のsubmitボタンで押された...
-
ホームページビルダーのスクリ...
-
関数名などの固有名詞(?)を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
hiddenのvalueの値を変えたい
-
value内に変数を入れたい
-
引数に数値、文字列の混在
-
複数のsubmitボタンで押された...
-
VB.NET DateTimeの型について
-
3桁区切りのカンマをつけたい...
-
javascriptでhiddenに二次元配...
-
フォームで入力した値を別のフ...
-
setIntervalの間隔を途中で変更...
-
jsで、配列内の文章を改行する...
-
Pythonで会員サイトの自動ログ...
-
selectboxのoptionタグのvalue...
-
テキストボックスに入力された...
-
フォーカスすると初期値が消去...
-
ラジオボタンと連動して文字列...
-
セレクトボックスの初期選択状...
-
sessionStorageを調べています。
-
VBAをJavaScriptに変換したいです
-
ダミーフォームの内容を送信用...
-
javascriptで複数の計算を同時...
おすすめ情報