2017-07-10 8 views
-2

私は計算フィールドフォームと呼ばれるWPプラグインを使用してフォームを構築しています。 人々は、彼らが(fieldname2)を投資したい金額を入力するための最初の質問がある金利を計算するスクリプトを書く方法

人々は量や長さに基づいた月数(fieldname3) を選択する2つ目の質問は、異なる金利であり、表示する必要があります。

私は自分で方程式を入力することになっていますので、次のスクリプトを試してみましたが動作しません。

(function()`{` 
if (50<=fieldname2<=99 && fieldname3=3) return fieldname2*4/100; 
if (50<=fieldname2<=99 && fieldname3=6) return fieldname2*6/100; 
if (50<=fieldname2<=99 && fieldname3=12) return fieldname2*8/100; 
`}`)(); 
+2

構文エラー... '50を呼び出すことができます<= fieldname2 <= 99'は有効な比較ではなく、 'fieldname3 = 3'は_assignment_であり、等価比較ではありません。 'if(50 <= fieldname2 && fieldname2 <= 99 && fieldname3 === 3)' –

答えて

0

それはあなたがここで達成しようとしているものを少しは不明だが、次のようにあなたのコードに問題があります:

(function()`{` 
// --------^^^ unexpected template string 
if (50<=fieldname2<=99 && fieldname3=3) return fieldname2*4/100; 
// ------^^^ this is not valid ----^^^ should be === not = 
if (50<=fieldname2<=99 && fieldname3=6) return fieldname2*6/100; 
if (50<=fieldname2<=99 && fieldname3=12) return fieldname2*8/100; 
`}`)(); 
// immediately invoked function - but why? 
// what happens if "50<=fieldname2<=99" is not satisfied? 

アドバイスのビット - を参照してテスト可能なエンティティとして最初の関数を記述しますあなたが望む結果を得ることさえあれば。表現力豊かな議論を使って、自分が何をしているのかを推論することができます。あなたの機能でカバーされていないケースを考えてください(下記のコメントを参照)。そのような場合、あなたはundefinedを返すことが望ましく、それは望ましいことです。

function calculateInterest (amount, months) { 
    if (50 <= amount && amount <= 99) { 
    if (months === 3) return amount*4/100; 
    if (months === 6) return amount*6/100; 
    if (months === 12) return amount*8/100; 
    // what should we return if months does not satisfy one of the above? 
    } 
    // what should we return if amount does not satisfy the above? 
} 

fieldname2fieldname3はあなたのコード内に存在する変数と仮定すると、あなたは今、関数にcalculateInterest(fieldname2, fieldname3)

+0

あなたの助けをありがとう。はい、fieldname2とfieldname3はすでに存在する変数です。フォーム上では、3つのラジオボタン(3ヶ月、6ヶ月または12ヶ月)からしか選択できないため、「月」は常に私が言及した3のいずれかを満たします。ただし、金額が異なる場合は、別の料金を表示する必要があります。たとえば、3ヶ月間、50 <= amount <= 99の場合、レートは1%でなければなりませんが、100 <= amount <= 499の場合、レートは3%になります。私は額の50と最低10,000を設定するので、人々が50未満または10,000以上を入力しようとすると、エラーメッセージが表示されます。 – evos89

+0

@ evos89 okだから、月のオプションは3つしかないので、最初のコメントを削除することができます。レートの点では、あなたがリストした式にどのように影響しますか?たとえば、50 <= amount <= 99、month 6の場合は、金額* 6/100が得られます。月額6で100 <= amount <= 499の利回りは何ですか? ここで再現しようとしている元の数式を入力できますか? – Damon

+0

実際には、数式はありません、レートは固定値です。 – evos89

関連する問題