1

私は、2つの初期量が与えられた場合に、2番目の与えられた量を完全に分割する最初の量以上の数を見つけようとする短いHTMLコードを書き込もうとしています。コードは数値を除算しようとしますが、失敗した場合は、最初の数値に1を加算して、再度除算しようとします。

2番目の数値を完全に除算する値と除算の答えをコードに返すようにします(その周りにプレーンテキストが表示されます)。

これに加えて、または少なくとも私が望んでいるのは、5つの異なるボタンのいずれかをクリックすると、最初に指定された数値に対して乗算操作が実行され、最も近い整数に切り上げられてから、関数が試行することです。これを2番目に与えられた数に分割します。

私がこれまでに持っているコードをあなたに示さずに私が欲しいものを正確に説明するのは難しいので、ここにそれがあります:


<html>

<head>

<b>Rounded Commodity Pricing:</b><br>

</head>

<script language="Javascript">

var currency;

function setCurrency(val) {
 var currency = val;
}

function finddivid(marketprice,tradevalue) { 
 var KWDex = 0.281955
 var GBPex = 0.625907
 var USDex = 1
 var CADex = 0.998727
 var EURex = 0.784594

if 
  (currency == "KWD") 
  var currencyMarketprice = Math.ceil(marketprice*KWDex);
else if
  (currency == "GBP")
  var currencyMarketprice = Math.ceil(marketprice*GBPex);
else if 
  (currency == "USD") 
  var currencyMarketprice = Math.ceil(marketprice*USDex);
else if 
  (currency == "CAD") 
  var currencyMarketprice = Math.ceil(marketprice*CADex);
else if 
  (currency == "EUR") 
  var currencyMarketprice = Math.ceil(marketprice*EURex);

if (tradevalue % currencyMarketprice == 0)
  return ("tonnage = " + tradevalue / currencyMarketprice + " mt, and price = " + currencyMarketprice +" " +currency +" per mt");
else
  {for (var counter = currencyMarketprice+1; counter<(currencyMarketprice*2); counter++) {
    if (tradevalue % counter == 0)
     return ("tonnage = " + tradevalue / counter + " mt, and price = " + counter +" " +currency +" per mt");}}
}

</script>

</head>

<p>Select currency:
<input type="button" value="KWD" OnClick="setCurrency('KWD')">
<input type="button" value="USD" OnClick="setCurrency('USD')">
<input type="button" value="GBP" OnClick="setCurrency('GBP')">
<input type="button" value="EUR" OnClick="setCurrency('EUR')">
<input type="button" value="CAD" OnClick="setCurrency('CAD')">

<P>Enter today's price of commodity in USD: <input name="mktprc" input type="number"><br><p>
<P>Enter value of trade: <input name="trdval" input type="number">

<input type="button" value="Calculate" OnClick="document.getElementById('showMeArea').value=finddivid(document.getElementById('mktprc'),document.getElementById('trdval')));">

<p>
<br><br>

<input name="showMeArea" readonly="true" size="100">

</html>

このhtmlをブラウザで実行すると、私が達成しようとしていることがわかるはずです。

私はこれを機能させるためにしばらく試しましたが、関数内にエラーがあるのか​​、それとも関数「finddivid」の「return」をテキストボックス「showMeArea」に取得しようとしている方法なのかわかりません'..。

これが私が助けを必要とする主な問題/機能です:

  1. 「通貨」ボタンの1つをクリックして、クリックすると変数「通貨」が割り当てられ、関数finddividで使用できるようにしたいと思います。

(2.これは今のところそれほど重要ではありませんが、最終的には、これが機能したら、通貨ボタンの1つをクリックすると色が変わるか、強調表示されるか、ユーザーがどちらかを認識できるようにしたいと思います。彼らが使用している為替レート。)

  1. 2つのボックスに数値を入力したら、[計算]をクリックして、関数に書き込んだ内容をコードの最後にある[showMeArea]読み取り専用ボックスに返します。

私はおそらくたくさんのものが不足していることを知っています、そして私は成功から何マイルも離れているかもしれませんが、私はプログラミングに非常に慣れていません(ほんの数日前に始めました!)ので、提供できるあらゆる種類の助けが欲しいです。

コメントをよろしくお願いします。

4

1 に答える 1

1

マークアップと JavaScript にはかなりの数の問題があります。閉じられていない段落タグがあり、通貨のスコープをグローバルに設定しますが、設定したいときに同じ名前のローカル変数を定義します (これが通貨がグローバルに設定されない理由です)、if/ を使用していますswitch/case がより適切な else ステートメント...おそらくもっとたくさんあり、学べば学ぶほど発見が増えるでしょう。そうは言っても、気になったので、あなたが望んでいたことをするように見えるあなたのコードの修正版があります:

<html>
<head>

<title>Rounded Commodity Pricing</title>
<script type="text/javascript">

    var currency;
    function setCurrency(val) {
        currency = val;
    }

    function finddivid(marketprice, tradevalue) {
        var KWDex = 0.281955
        var GBPex = 0.625907
        var USDex = 1
        var CADex = 0.998727
        var EURex = 0.784594

        var currencyMarketprice;
        switch (currency) {
            case "KWD":
                currencyMarketprice = Math.ceil(marketprice * KWDex);
                break;
            case "GBP":
                currencyMarketprice = Math.ceil(marketprice * GBPex);
                break;
            case "USD":
                currencyMarketprice = Math.ceil(marketprice * USDex);
                break;
            case "CAD":
                currencyMarketprice = Math.ceil(marketprice * CADex);
                break;
            case "EUR":
                currencyMarketprice = Math.ceil(marketprice * EURex);
                break;

        }

        if (tradevalue % currencyMarketprice == 0)
            return ("tonnage = " + tradevalue / currencyMarketprice + " mt, and price = " + currencyMarketprice + " " + currency + " per mt");
        else {
            for (var counter = currencyMarketprice + 1; counter < (currencyMarketprice * 2); counter++) {
                if (tradevalue % counter == 0)
                    return ("tonnage = " + tradevalue / counter + " mt, and price = " + counter + " " + currency + " per mt");
            } 
        }
    }

    function calculate() {
        var mktprc = document.getElementById('mktprc');
        var trdval = document.getElementById('trdval');
        document.getElementById('showMeArea').value = finddivid(mktprc.value, trdval.value);
    }

</script>
</head>

<p>
    Select currency:
    <input type="button" value="KWD" onclick="setCurrency('KWD')">
    <input type="button" value="USD" onclick="setCurrency('USD')">
    <input type="button" value="GBP" onclick="setCurrency('GBP')">
    <input type="button" value="EUR" onclick="setCurrency('EUR')">
    <input type="button" value="CAD" onclick="setCurrency('CAD')">
</p>

<p>Enter today's price of commodity in USD: <input id="mktprc" input type="number"><p>
<p>Enter value of trade: <input id="trdval" input type="number"></p>
<p><input type="button" value="Calculate" OnClick="calculate();"></p>

<p>
    <input id="showMeArea" readonly="true" size="100">
</p>

</html>
于 2012-11-13T11:30:06.137 に答える