WEB上で入力した数値から複数の計算をさせ、それをフォームからcgiに送るjavascriprを組みたいと思っています。
【現在保有のスクリプト】
下記のスクリプト1では、text1 text2 欄に数値を入力した後、「計算」ボタンを押し、送信ボタンを押すと、計算結果をcgiに送ることが可能です。
(下記の場合は、「入力数値の和」と「積」の2つの数値の送信する)
【やりたいこと】
text1 text2 欄に数値を入力した後、「計算」ボタンを押したあとに、「和と積がブラウザ上に表示され、確認した後に「送信ボタン」を押せるようにしたい。
ということで、修正したのがスクリプト2です。
【質問事項】
スクリプト2では、スクリプト1をベースに
javascript上に
msg.innerHTML = msg;
msg2.innerHTML = msg2;
を加え、
HTML上に
<p id="msg"></p>
<p id="msg2"></p>
を加えていますが、これでは動きません。
上記に加え
function readText() {
var text1 = document.getElementById("");
などのパーツを入力する必要があるはずだと思うのですが、いろいろな場所に試行錯誤しておりますが、うまくいきません。
ご教示いただきたくお願いいたします。
【スクリプト1】************************************************
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>test</title>
<script type="text/javascript">
<!--
//@cc_on
document./*@if(1) attachEvent( 'on' + @else@*/ addEventListener( /*@end@*/ 'click', function( evt )
{
var t = evt./*@if(1) srcElement @else@*/ target /*@end@*/
var v1, v2, msg, sum, msg2, sum2;
if( t.type == 'button' && t.name == 'calc' && t.form.id == 'form2' ) {
v1 = t.form.elements['text1'].value;
v2 = t.form.elements['text2'].value;
if ( isNaN( v1 ) || v1 == '' || isNaN( v2 ) || v2 == '' ) {
msg = '数字以外の文字が入ってます';
} else {
sum = parseFloat( v1 ) * parseFloat( v2 );
msg = '積は、' + sum + 'です';
sum2 = parseFloat( v1 ) + parseFloat( v2 );
msg2 = '和は、' + sum2 + 'です';
}
t.form.elements['plus'].value = msg;
t.form.elements['plus2'].value = msg2;
}
}, false );
//-->
</script>
</head>
<body>
<form action="form30.cgi" method="post" name="form2" id="form2">
<fieldset>
<input type="text" id="text1" name="text1" size="10" maxlength="10" />+
<input type="text" id="text2" name="text2" size="10" maxlength="10" />
<input type="button" value="計算" name="calc" />
<br>
<input type="hidden" name="plus" value="">
<input type="hidden" name="plus2" value="">
<input type="submit" value="送信" />
</fieldset>
</form>
</body>
</html>
****************************************************************
【スクリプト2】上記を改造しweb上で計算結果を表示させたい********
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>test</title>
<script type="text/javascript">
<!--
//@cc_on
document./*@if(1) attachEvent( 'on' + @else@*/ addEventListener( /*@end@*/ 'click', function( evt )
{
var t = evt./*@if(1) srcElement @else@*/ target /*@end@*/
var v1, v2, msg, sum, msg2, sum2;
if( t.type == 'button' && t.name == 'calc' && t.form.id == 'form2' ) {
v1 = t.form.elements['text1'].value;
v2 = t.form.elements['text2'].value;
if ( isNaN( v1 ) || v1 == '' || isNaN( v2 ) || v2 == '' ) {
msg = '数字以外の文字が入ってます';
} else {
sum = parseFloat( v1 ) * parseFloat( v2 );
msg = '積は、' + sum + 'です';
sum2 = parseFloat( v1 ) + parseFloat( v2 );
msg2 = '和は、' + sum2 + 'です';
}
t.form.elements['plus'].value = msg;
t.form.elements['plus2'].value = msg2;
msg.innerHTML = msg;
msg2.innerHTML = msg2;
}
}, false );
//-->
</script>
</head>
<body>
<form action="form30.cgi" method="post" name="form2" id="form2">
<fieldset>
<input type="text" id="text1" name="text1" size="10" maxlength="10" />+
<input type="text" id="text2" name="text2" size="10" maxlength="10" />
<input type="button" value="計算" name="calc" />
<br>
<input type="hidden" name="plus" value="">
<input type="hidden" name="plus2" value="">
<p id="msg"></p>
<p id="msg2"></p>
<input type="submit" value="送信" />
</fieldset>
</form>
</body>
</html>
****************************************************************
No.1ベストアンサー
- 回答日時:
msg.innerHTML = msg;
msg2.innerHTML = msg2;
の代わりに以下。
var p1 = document.getElementById('msg');
var p2 = document.getElementById('msg2');
if (p1.textContent !== undefined){
p1.textContent = msg;
p2.textContent = msg2;
}else{
p1.innerText = msg;
p2.innerText = msg2;
}
textContentとinnerTextは少し違いますが、あまり気にしなくてもいいかもしれません。詳しくは以下。
http://d.hatena.ne.jp/cou929_la/20110517/1305644 …
今回のtextContentと、あとクリックイベントの追加の部分は実装による違いで分岐をしていますが、
そういったところはjqueryなどのDOM操作補助ライブラリを使うと、随分とすっきりします。
素早いご回答有難うございます。
お陰さまで当方の考えているものを作ることが出来ました。大変助かりました。本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- PHP php ログイン 1 2022/11/01 00:24
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLとJavaScriptで作った表示...
-
TextBoxに半角数字以外を入れた...
-
テキストエリアに履歴を残したい
-
javascriptのちょっとした動作...
-
イベント発生順序
-
【Javascript】(テキストボッ...
-
perl cgi文字化け解消方法と[1...
-
Request.Form(key)の中身をクリ...
-
テキストボックスに入力した色...
-
タイマーについて教えて下さい!!
-
jQueryのdatepickerの日付が選...
-
ページ間で変数を保持したい
-
blurイベントについて
-
GetElementByIdがうまく取得で...
-
開いたサブウインドウから値を...
-
フォームの内容でリンク先URLの...
-
return trueとreturn falseの用...
-
プルダウン 項目が多いので先頭...
-
テキストボックス入力を半角英...
-
【jQuery】input nameの文字列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLとJavaScriptで作った表示...
-
GetElementByIdがうまく取得で...
-
tabindexの取得
-
TextBoxに半角数字以外を入れた...
-
JavaScriptで作ったアプリが正...
-
プルダウンで選択された値を別...
-
HTMLファイル同士での値渡し
-
フォームの内容でリンク先URLの...
-
ページ間で変数を保持したい
-
テキストボックスに初期値で1...
-
javascriptのちょっとした動作...
-
入力するテキストエリアをボタ...
-
jQueryのdatepickerの日付が選...
-
JSPでonChangeを強制発行するに...
-
マイナスなら赤字で表示したい...
-
大文字か小文字かを判断する方法
-
VBscriptの配列変数をJavascrip...
-
一部Enter無効化の方法を教えて...
-
テキストエリアに履歴を残したい
-
フォーカスが外れた時の入力チ...
おすすめ情報