0
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<script>
function baseCalculate(slider,sqft,plumbing,credit){
    var cost = document.getElementById("cost");
    var slideval = document.getElementById("slideval");
    var sqft = document.getElementById("sqft");
    var plumbing = document.getElementsByName("plumbing");
    var credit = document.getElementsByName("Credit");
    var price = slider;
    cost.innerHTML = "$"+(((sqft * price) + plumbing) * credit);
    slideval.innerHTML = slider;
}
</script>
</head>

<body>
<h2>Job Estimator</h2>
How many square feet? 
<input type="text" id="sqft"><br>
Price per Square Foot? <input type="range" min="55" max="80" value="70" step="1 
onChange="baseCalculate(this.value,'sqft','plumbing','Credit')" style="width:500px;">

<span id="slideval">70</span>
<p>
 <legend>Will there be plumbing?</legend> <label>
    <input type="radio" name="plumbing" value="150" id="plumbing_0">
    yes</label>
  <br>
  <label>
    <input type="radio" name="plumbing" value="0" id="plumbing_1">
    no</label>
  <br>
  <label>
    <input type="radio" name="plumbing" value="-150" id="plumbing_2">
    promo</label>
  <br>
</p>
<p><legend>Paying with credit card?</legend>
  <label>
    <input type="radio" name="Credit" value="1.06" id="Credit_0">
    Yes</label>
  <br>
  <label>
    <input type="radio" name="Credit" value="1" id="Credit_1">
    No</label>
  <br>
   <label>
     <input type="radio" name="Credit" value=".94" id="Credit_2">
    Promo</label>
  <br>
</p>
<h2>This is the cost of the project: <span id="cost"></span></h2>
</body>
</html>

これは私が使用しているコードです。私は、平方フィートに価格を掛けてから配管を追加し、そのすべてにクレジットを掛けようとしています。

ここで何が欠けていますか?NaN を返します。

助けてくれてありがとう。

4

1 に答える 1

0

textContentを使用してテキスト値を取得し、計算を実行する必要があります

var cost = document.getElementById("cost").textContent;
var slideval = document.getElementById("slideval").textContent;
var sqft = document.getElementById("sqft").textContent;

また、入力要素の

var plumbing = document.getElementsByName("plumbing")[0].value;
var credit = document.getElementsByName("Credit")[0].value;

getElementsByName配列を返します。ここで最初の値を取得しました[0]

あなたのケースでは、forループを実行してchecked属性をチェックし、そのvaluefor計算を取得する必要があります

于 2013-10-17T15:11:40.627 に答える