関数を使う式が難しく、どうか教えてください。
金額を入力してもらい、その金額による(1)割引率%、(2)サービスする価格、(3)計算結果、というスクリプトを組まなければなりません。
入力された金額の範囲が1000円~10,000円までのものなら、(1)が5%、(2)が300円、(3)は入力された金額*(1)-(2)で、金額の範囲が上がると、(1)が7%、(2)が500円になるといった具合で、6段階ぐらいに増えていきます。
(3)の計算結果だけでなく、(1)(2)(3)すべてが出るようにするには、どのように組めば良いのでしょうか?
どうか宜しくお願いします。
No.1ベストアンサー
- 回答日時:
入力後、割引率、サービス価格、計算結果を表示する、ということですが、何もないところに、いきなり文字を表示することはできません。
割引率、サービス価格、計算結果表示用のテキストボックスを用意しておいて、入力があったら、各数値を表示するのがいいと思います。
・入力の確認は、入力フィールドのonBlur/onChange、または計算ボタンなどで行います。
・表示用フィールドにもonBlur/onChange/onKeypressなどを用意しておいて、ユーザによる書き込みがあったら、正しい値を表示し直すといいです。
・金額による各値の変動ですが、割引率とサービス価格の配列をそれぞれ用意しておき、入力された価格に対する配列でのIndex値を、多重if文で求めればよいと思います。
凄く適当に組んでみましたが、参考にしてみてください。
<script>内
var price, lank; // 入力価格、入力価格のランク
var wari = new Array(0,5,10,15,20); // 割引率
var serv = new Array(0,300,400,500,600); // サービス価格
function check()
{
price = eval(document.frm.tx0.value);
set_lank();
view();
}
function set_lank()
{
if ( price< 1000) { lank = 0; }
else if ( 1000<=price && price<10000) { lank = 1; }
else if (10000<=price && price<15000) { lank = 2; }
else if (15000<=price && price<20000) { lank = 3; }
else if (20000<=price ) { lank = 4; }
}
function view()
{
with( document.frm ) {
tx1.value = wari[lank];
tx2.value = serv[lank];
tx3.value = price + (price * wari[lank] / 100) - serv[lank];
}
}
<body>内
<form name="frm">
<input type="text" name="tx0"">
<input type="button" value="計算する" onClick="check();"><p>
<font face="MS ゴシック">
割引率 <input type="text" name="tx1" onBlur="view();">%<br>
サービス価格<input type="text" name="tx2" onBlur="view();"><br>
価格 <input type="text" name="tx3" onBlur="view();"><br>
</font>
</form>
分かり易い説明と、重宝なスクリプトをご回答いただいて、本当にありがとうございました。このスクリプトを加工していけば、いろいろと多用できると思います。大変助かりました。今後とも宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文末の改行コードを削除したい
-
フォームから入力すると、入力...
-
strutsのhtmlタグのfileについて
-
JavaScript正規表現について
-
イベント発生時に入力待ち状態...
-
return trueとreturn falseの用...
-
FormのonsubmitでJavaスクリプ...
-
value内に変数を入れたい
-
VBSでブラウザ上のテキストボッ...
-
特定<table>内の<td>の色を変える
-
送信フォームで送信ボタンをお...
-
Selectボックスの幅を自動で広...
-
VB.NET DateTimeの型について
-
ボタン無しでフォーム内容送信
-
TextBoxに半角数字以外を入れた...
-
JavaScriptで<select>の<option...
-
IE6だけ、<select>がプルダウン...
-
VB6でWEBのラジオボタンの...
-
JQueryでfunctionに引数としてI...
-
HTMLとJavaScriptで作った表示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onClickとsubmitの処理順序
-
フォームの値が0だったら空白...
-
JSPとJavaScriptの連携について...
-
テキストボックス入力を半角英...
-
PDFフォームで条件つき金額を表...
-
日付入力欄の表示形式を自動的...
-
テキストボックスを無効にする...
-
テキストエリアに入力可能な文...
-
javascriptでのフォーム自動入...
-
テキストボックスのグレーアウト
-
dijit.form.ComboBoxについて
-
JQueryで2つのテキストフィー...
-
入力フォーム内の字数制限
-
ラジオボタンによるフォームの...
-
javascriptで入力禁止文字をチ...
-
strutsのhtmlタグのfileについて
-
submit後、同じ入力欄に戻らせ...
-
入力した文字を大文字に変換し...
-
VBScript
-
テキストエリア入力文字数の表...
おすすめ情報