関数を使う式が難しく、どうか教えてください。

金額を入力してもらい、その金額による(1)割引率%、(2)サービスする価格、(3)計算結果、というスクリプトを組まなければなりません。
入力された金額の範囲が1000円~10,000円までのものなら、(1)が5%、(2)が300円、(3)は入力された金額*(1)-(2)で、金額の範囲が上がると、(1)が7%、(2)が500円になるといった具合で、6段階ぐらいに増えていきます。
(3)の計算結果だけでなく、(1)(2)(3)すべてが出るようにするには、どのように組めば良いのでしょうか?
どうか宜しくお願いします。

A 回答 (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>
    • good
    • 0
この回答へのお礼

分かり易い説明と、重宝なスクリプトをご回答いただいて、本当にありがとうございました。このスクリプトを加工していけば、いろいろと多用できると思います。大変助かりました。今後とも宜しくお願いいたします。

お礼日時:2001/05/15 10:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qアップルスクリプトで複数行のDoShellScript

アップルスクリプトでsendmailのようなコマンドラインをDo Shell Script するときに複数行を送るとエラーになりますが、何か特別な書き方があるのでしょうか?
Do Shell Script "sendmail ***@efg.com
From: *****@stu.com
To: ***@efg.com
Subject: たいとる

本文
.
"

Aベストアンサー

もう一つちなみに、シェルスクリプトとして実行したい場合には

echo (タイトルと本文) | sendmail -r (送信先アドレス) (送信元アドレス)

などとします。

QもしAだったら100円、Cだったら150円・・・金額計算

Javascriptは初心者です。
今、合計金額を計算するJavascriptを組んでいます。

今できているのはこちらです。
http://ribbon.chu.jp/keisan.html

分からないところは、項目【オプション2】の
・Aを選択したら100円
・Cを選択したら150円  ・・・etc
の部分がどうしてもやり方がわかりません。

プルダウンメニューでもラジオボタンでも構わないのですが、
とにかく↑のような設定をしたいです。
ソースは見てくださって構いません。
力を貸していただけると幸いですm(__)m

Aベストアンサー

できればnameかidをつけてやるのが早道・・・
デフォルトでAが選択されているならoptionsのデフォ値は100
にしといた方がいいですね

<form>
<select onchange="this.form.elements["option2"].value=this.value">
<option value="100">A</option>
<option value="100">B</option>
<option value="150">C</option>
<option value="150">D</option>
</select>
<input type="text" size="8" value="100" name="option2"> 円</td>
</form>

Qリモートスクリプト実行の為のVBscriptでの変数の扱い

お世話になります。
HTMLのテーブル内のイメージをクリックする事でリモートスクリプトを動かし、あるDBにデータを更新しながら、イメージも変更するスクリプトを作成しております。
リモートスクリプトを使ったデータ更新等は上手くいきますが、一点、HTML内で動かすvbscriptで問題が出てしまいました。

object.innerHTML構文のところです。
objectの部分にはASPで動的に変化するIDを代入しなければなりませんが、objectの部分に変数を入れると、変数としてではなく、オブジェクトそのものと認識され、「オブジェクトがありません」というエラーが起こります。

サンプルのソースを如何に記載いたします。
***ソース
<SCRIPT Language="vbScript">
<!--
function updatedata1(id)
id.innerHTML ="<a href='#'><IMG src='img/"&img_name&".gif' border=0 onClick=updatedata1('"&img_name&"')></a>"
End Function
// -->
</SCRIPT>
~ 中略 ~
<TD id= "usr001"><a href="#"><IMG src="img/work.gif" width="30" height="18" border="0" onClick="updatedata1('usr001')"></a></TD>
*****
上記ソース内のvbscriptに対し、onClick="updatedata1('usr001')でinnerHTMLのオブジェクトとなる「usr001」を渡しています。
vbscrptの function updatedata1(id) でusr001をidに代入し、id.innerHTMLとしたところがエラーになります。

onClickでダイナミックに変更をする部分は無限にあるため、inner.HTMLのオブジェクトは変数で変わるようにしたいのですが、方法はありますでしょうか?

宜しくお願い申し上げます。

PS. VBはそれ程得意な言語ではありません。もしかしたらかなり初歩的なミスかもしれませんが、お許しください。

お世話になります。
HTMLのテーブル内のイメージをクリックする事でリモートスクリプトを動かし、あるDBにデータを更新しながら、イメージも変更するスクリプトを作成しております。
リモートスクリプトを使ったデータ更新等は上手くいきますが、一点、HTML内で動かすvbscriptで問題が出てしまいました。

object.innerHTML構文のところです。
objectの部分にはASPで動的に変化するIDを代入しなければなりませんが、objectの部分に変数を入れると、変数としてではなく、オブジェクトそのものと認識され、「...続きを読む

Aベストアンサー

こんにちは。
WSHはよく解らないのであてずっぽうで申し訳ないのですが。。

onClick="updatedata1('usr001')
この時点で'usr001'は文字列です。なのでFunctionのパラメータとして渡った際に
idのデータ型はString型になっていると思われます。
そうすると「'usr001'.innerHTML」というのは構文的におかしいので
エラーになる。。。。と推測されます。(WSH知らないので推測です(^-^;

ブラウザが限定(IE5.0以上)されてしまいますがEval関数は使えないでしょうか?
Eval(id).innerHTML = ~~~

http://www.microsoft.com/japan/developer/library/script56/vsfcteval.htm
http://www.microsoft.com/japan/developer/library/script56/vtoriVersionInformation.htm

古いIEに対応しなければならないと言う事ならば。。。他の方よろしくお願い致します。

はずしてたらごめんなさい。

こんにちは。
WSHはよく解らないのであてずっぽうで申し訳ないのですが。。

onClick="updatedata1('usr001')
この時点で'usr001'は文字列です。なのでFunctionのパラメータとして渡った際に
idのデータ型はString型になっていると思われます。
そうすると「'usr001'.innerHTML」というのは構文的におかしいので
エラーになる。。。。と推測されます。(WSH知らないので推測です(^-^;

ブラウザが限定(IE5.0以上)されてしまいますがEval関数は使えないでしょうか?
Eval(id).innerHTML = ~~~

ht...続きを読む

Q金額に3桁ごとにカンマを入れた、入力フォームの加算が出来ない。

金額に3桁ごとにカンマを入れた、商品注文入力フォームを作りたいのですが、加算が出来ません。
困っています、どなたか教えてください。
よろしくお願いします。WinXP IE6.0を使っています。

(金額欄)
商品1×数量=商品1金額     計算OK
商品2×数量=商品2金額     計算OK

(商品明細欄)
商品1 商品名+個数+商品1金額  表示OK
商品2 商品名+個数+商品2金額  表示OK
合計(商品1+商品2)は、商品2の金額しか表示しないので、困っています。

(ソースコード)
function calcTotal() {
var intTotalPrice = 0;
var strEstimate = "\n------------------------------------------------------ \n"
+ "            ご注文ご明細 \n"
+ "------------------------------------------------------ \n";
if (document.form1.buyItem1.checked == true) {
intTotalPrice= document.form1.prcItem1.value;
strEstimate = strEstimate + "商品1    :" + parseInt(document.form1.NumItem1.selectedIndex + 1) + "個  "
+document.form1.prcItem1.value + "円 \n";
}
if (document.form1.buyItem2.checked == true) {
intTotalPrice =document.form1.prcItem2.value;
strEstimate = strEstimate + "商品2 :" + parseInt(document.form1.NumItem2.selectedIndex + 1) + "個  "
   + document.form1.prcItem2.value + "円 \n";
}
strEstimate = strEstimate + "------------------------------------------------------ \n"
+ "ご注文合計 "  + intTotalPrice + "円 ";

document.form2.tarEstimate.value = strEstimate;
}

金額に3桁ごとにカンマを入れた、商品注文入力フォームを作りたいのですが、加算が出来ません。
困っています、どなたか教えてください。
よろしくお願いします。WinXP IE6.0を使っています。

(金額欄)
商品1×数量=商品1金額     計算OK
商品2×数量=商品2金額     計算OK

(商品明細欄)
商品1 商品名+個数+商品1金額  表示OK
商品2 商品名+個数+商品2金額  表示OK
合計(商品1+商品2)は、商品2の金額しか表示しないので、困っています。

(ソースコード)
fun...続きを読む

Aベストアンサー

どうもカンマの除去がうまくできていないようですね。(replaceのところ)
理由はよくわからないです。テスト用のコードを書いたので、計算できるか
どうか試してください。なお、#1のコードだとカンマが複数入った場合に
問題があるので修正しました。


----------------------------------------------------------------------
<html>
<head>

<script language="JavaScript"><!--

function parseIntWithComma(strInt) {
  var strNew = "";
  for (var i = 0; i < strInt.length; i++) {
    if (strInt.charAt(i) != ',') strNew += strInt.charAt(i);
  }
  return parseInt(strNew);
}

function calcTotal() {
  var intTotalPrice = 0;
  var strEstimate = "------------------------------------------------------ \n"
    + "            ご注文ご明細 \n"
    + "------------------------------------------------------ \n";
  intTotalPrice += parseIntWithComma(document.form1.prcItem1.value);
  intTotalPrice += parseIntWithComma(document.form1.prcItem2.value);
  strEstimate = strEstimate + "ご注文合計 "  + intTotalPrice + "円 ";
  document.form2.tarEstimate.value = strEstimate;
}
//-->
</script>
</head>
<body>

<form name="form1">
商品1<input type="text" name="prcItem1">円<br>
商品2<input type="text" name="prcItem2">円<br>
<button onclick="calcTotal()">見積もり</button>
</form>

<br>

<form name="form2">
<textarea name="tarEstimate" cols="60" rows="10" readonly>
金額を入力してから見積もりボタンをクリックしてください。
</textarea>
</form>

</body>
</html>
----------------------------------------------------------------------
全角スペースでインデントしているので削除してください。

どうもカンマの除去がうまくできていないようですね。(replaceのところ)
理由はよくわからないです。テスト用のコードを書いたので、計算できるか
どうか試してください。なお、#1のコードだとカンマが複数入った場合に
問題があるので修正しました。


----------------------------------------------------------------------
<html>
<head>

<script language="JavaScript"><!--

function parseIntWithComma(strInt) {
  var strNew = "";
  for (var i = 0; i < strInt.length; i++) {
...続きを読む

QBurgues Script というスクリプト書体は商用可能でしょうか?

海外サイトで仕事に使えるスクリプト書体を
購入しようとしてコチラの書体をみつけました。↓
http://font-font.net/2008/09/-burgues-script.html

この書体は商用利用が可能なものでしょうか?
もし、わかる方がみえたら
教えてください。

Aベストアンサー

素敵な書体ですね。

ちょっと分かりにくいですが、Veer.comに移動して、中段くらいにあるメニューの右端「About」をクリックすると、すぐ下の行に「License agreement」へのリンクが出てきます。

大丈夫だと思いますが、ご自身で判断してください。

Qjquery datatablesを使用 インプットタグに数値入力して行の合計金額を出したい

jqueryをあまり理解せずに使用している素人の投稿ですみませんがご教授いただけましたら幸いです。

現在、下記のようにdatatablesを利用して納品書のようなものを作成したいと思っています。

<table id="master_store_index_list_table" class="table table-striped">
<thead>
<tr class="alert-info">
<th>商品名</th>
<th>単価</th>
<th>入数</th>
<th>計</th>
</tr>
</thead>
<tbody>
<tr>
<td>サッカーボール</td>
<td>2,500円</td>
<td><input></td>
<td></td>
</tr>
<tr>
<td>テニスボール</td>
<td>2,000円</td>
<td><input></td>
<td></td>
</tr>
<tr>
<td>バレーボール</td>
<td>1,900円</td>
<td><input></td>
<td></td>
</tr>
<tr>
<td>ドッジボール</td>
<td>1,500円</td>
<td><input></td>
<td></td>
</tr>
</tbody>
</table>

jquery datatablesでいろいろ調べた結果、
footerCallbackのように列の合計を表示するような
サンプルはいくつか見つかったのですが行の合計を出すやり方が見つかりません。

jquery datatablesで詳しいかた、大変恐縮ですがscriptを教えてください。


希望
①inputの部分に個数を入力して、単価×個数の計を表示したい
②個数を入力していない箇所はエラーが出ないようにしたい
③合計数字はカンマ入りで表示したい
④全ての合計は下部に小計、消費税、合計と表示したい
※datatablesでfooterCallbackを記載したが合計しか出ない

お忙しい中、大変恐縮ですが何卒宜しく御願い致します。

jqueryをあまり理解せずに使用している素人の投稿ですみませんがご教授いただけましたら幸いです。

現在、下記のようにdatatablesを利用して納品書のようなものを作成したいと思っています。

<table id="master_store_index_list_table" class="table table-striped">
<thead>
<tr class="alert-info">
<th>商品名</th>
<th>単価</th>
<th>入数</th>
<th>計</th>
</tr>
</thea...続きを読む

Aベストアンサー

この際だからdatatablesは無視して進めます

<script>
$(function(){
$('#master_store_index_list_table input').change(function(){calc();})
$('input[value="再計算"]').click(function(){calc();})
});
function addFigure(str) {
var num = new String(str).replace(/,/g, "");
while(num != (num = num.replace(/^(-?[0-9]+)([0-9]{3})/, "$1,$2")));
return num;
}
function calc() {
var shokei=0;
$('#master_store_index_list_table tbody td:nth-child(3) input').each(function(){
var tanka=$(this).parent().prev().text().replace(/[,円]/g,'');
var irisu=$(this).val();
var kingaku=" ";
if(irisu.match(/^[0-9]*$/)){
kingaku=tanka*irisu;
shokei+=kingaku;
kingaku=kingaku?addFigure(kingaku):" ";
}
$(this).parent().next().text(kingaku);
});
$('#shokei').text(shokei?addFigure(shokei):" ");
$('#zei').text(shokei?addFigure(parseInt(shokei*0.08)):" ");
$('#gokei').text(shokei?addFigure(parseInt(shokei*1.08)):" ");

}
</script>
<table id="master_store_index_list_table" class="table table-striped" border>
<thead>
<tr class="alert-info">
<th>商品名</th>
<th>単価</th>
<th>入数</th>
<th>計</th>
</tr>
</thead>
<tbody>
<tr>
<td>サッカーボール</td>
<td>2,500円</td>
<td><input></td>
<td></td>
</tr>
<tr>
<td>テニスボール</td>
<td>2,000円</td>
<td><input></td>
<td></td>
</tr>
<tr>
<td>バレーボール</td>
<td>1,900円</td>
<td><input></td>
<td></td>
</tr>
<tr>
<td>ドッジボール</td>
<td>1,500円</td>
<td><input></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td>小計:</td>
<td id="shokei"></td>
</tr>
<tr>
<td></td>
<td></td>
<td>消費税:</td>
<td id="zei"></td>
</tr>
<tr>
<td></td>
<td></td>
<td>合計:</td>
<td id="gokei"></td>
</tr>
</tbody>
</table>
<input type="button" value="再計算">

この際だからdatatablesは無視して進めます

<script>
$(function(){
$('#master_store_index_list_table input').change(function(){calc();})
$('input[value="再計算"]').click(function(){calc();})
});
function addFigure(str) {
var num = new String(str).replace(/,/g, "");
while(num != (num = num.replace(/^(-?[0-9]+)([0-9]{3})/, "$1,$2")));
return num;
}
function calc() {
var shokei=0;
$('#master_store_index_list_table tbody td:nth-child(3) input').each(function(){
var tanka...続きを読む

QASP VBScriptでスクリプト実行を終了

ASP VBscript においてPHPでのdie()やexit()に相当する関数はありますか?

Aベストアンサー

PHPのexit()のように、終了コードを返す概念はないのですが、
処理を終了させるという意味では、Response.End が近いものかなと
思います。

ご参考になれば幸いです。

Q「2枚1組の画像」3セットを1セットずつランダムで表示させたい。

Javascriptの書き方はよく分からない素人です。
いつもソースを探してきて使っているレベルです。
やりたい内容に似たソース(▼以下)を探してきたのですが、
もともと「2枚1組の画像」を2セットずつ表示させるもので、
変更の仕方が分からないので教えていただきたいです。

さらに、「一定時間ごと」ではなく、
「ページを読み込む度」に表示を変えたいです。
(この場合全く違う書き方をすることになるのでしょうか?)

よろしくお願いします。

▼ここから-------------------
<script language="javascript"><!--
setInterval("textch()",3000);
TEXT = new Array('text0','text1','text2');

function textch() {
for(i=0; i<TEXT.length; i++){
var tmpA, tmpB, rnd;
rnd=Math.floor(Math.random() * TEXT.length);
tmpA=TEXT[i];
tmpB=TEXT[rnd];
TEXT[i]=tmpB;
TEXT[rnd]=tmpA;
}
for(j=0;j<TEXT.length;j++) {
document.getElementById(""+TEXT[j]+"").style.display = "none";
if(j == 0 || j == 1) { document.getElementById(""+TEXT[j]+"").style.display = "block"; }
}

}
//--></script>


<div id="text0"><img src="images/a.jpg" alt="A" width="410" height="168"><img src="images/b.jpg" alt="B" width="470" height="168"></div>
<div id="text1"><img src="images/c.jpg" alt="C" width="410" height="168"><img src="images/d.jpg" alt="D" width="470" height="168"></div>
<div id="text2"><img src="images/e.jpg" alt="E" width="410" height="168"><img src="images/f.jpg" alt="F" width="470" height="168"></div>

Javascriptの書き方はよく分からない素人です。
いつもソースを探してきて使っているレベルです。
やりたい内容に似たソース(▼以下)を探してきたのですが、
もともと「2枚1組の画像」を2セットずつ表示させるもので、
変更の仕方が分からないので教えていただきたいです。

さらに、「一定時間ごと」ではなく、
「ページを読み込む度」に表示を変えたいです。
(この場合全く違う書き方をすることになるのでしょうか?)

よろしくお願いします。

▼ここから-------------------...続きを読む

Aベストアンサー

No2です。

>欲を言えば、IEで一瞬すべての画像が表示されてしまうことが、
>ちょっと気になりますが
たしかにそうですね。 onload時(画面がレイアウトされてから)にスクリプトを実行しているので、その一瞬だけ表示されてしまいます。
もう少し早く消すようにスクリプトを変えてみましたが、あまり変わりはありませんでした。

画像の初期設定をCSSで非表示にしておけば、それよりは良くなると思います。
サンプルの場合だと
 .rand_1, .rand_2, .rand_A {display:none;}
みたいな感じ。

QApple Script(アップルスクリプト)が、動きません!

こんにちは、最近チョットした事件があって
 ハードディスクをフォーマットして、OS9.0を新規インストールしました。(OS9基本:推奨インストールを選択)
 (註:ハードディスクは4つにパーテションしてシステムフォルダは1つ)
そして、バックアップしておいた「初期設定」や「機能拡張」フォルダを
もどしたところ..
 起動した時に並ぶ「アイコンパレード」の時、アップルスクリプト機能拡張アイコンに、赤いバッテンがついてしまいました。
 あらためて、AppleScriptだけ選んで、追加インストールしてみましたが
再起動しても、あいかわらず、赤いバッテンは付いています。
 私の使うMacromediaのSOUNDEDIT16にAppleSciptが使われるので
ぜひ、使えるようにしたいです。
 
 初歩的な質問かも知れませんが、よろしくおねがいします!!

Aベストアンサー

> とにかく、アドバイスどうり、やってみる事にします。m(_ _)m

うまくいかなかったら教えてください。
他の原因を考えます。

QJavascriptで別のサイトのフォームに文字を入力して結果を取得する方法

あるサイトのフォームにキーワードを入力して検索する方法を知りたいです。
イメージとしては、Javascriptが動いているサイトとは別のサイトのフォームに文字を入力して、その帰ってきた情報を取得したいと考えています。

簡単な例でも構いませんので、ソースコードを例示して頂けると大変助かります。
よろしくお願いします。

Aベストアンサー

基本的に外部のページの入力欄に文字をいれて検索するのはjavascriptではむり
(サーバーサイドのプログラムで工夫をすればできないことはないけど
いまの質問者さんにはハードルが高いと思います)

一度そのサイトで検索文字を実際にいれて検索してみて、GETで渡しているなら
同じ様なパラメータをつけて検索すればよいでしょう
POSTだとjavascriptでやるのはちょっと難しいかな・・・

場合によってはフレームを使えばできる場合もありますが、きょうび
フレームの対象にならないように制限をかけているところも多いので
できないものと考えた方がよいかと


人気Q&Aランキング

おすすめ情報