I set up a jsfiddle for you. You can just plug in your logic to calculate the risk for the remaining fields and clean up the html.
JavaScript
var risk = {
'none': 0,
'low': 1,
'high': 2,
'abnormal': 3
};
var myRsk = 0;
function getValue(name) {
return document.getElementsByName(name)[0].value;
}
function calculateRisk() {
age = getValue('iAge');
gender = getValue('iGender');
sbp = getValue('iSBP');
dbp = getValue('iDBP');
temp = getValue('iTemp');
race = getValue('iRace');
family = getValue('iFamily');
myRisk = 0;
myRisk += calculateAge(age);
myRisk += calculateGender(gender);
myRisk += calculateSBP(sbp);
myRisk += calculateDBP(sbp);
myRisk += calculateTemp(temp);
myRisk += calculateRace(race);
myRisk += calculateFamily(family);
myRisk = parseFloat(myRisk / 21 * 100).toPrecision(4);
alert('Your Risk = ' + myRisk + '%');
}
function calculateAge(age) {
val = parseInt(age)
if (val > 80) return risk['abnormal'];
else if (val > 60) return risk['high'];
else if (val > 40) return risk['low'];
else return parseInt(risk['none']);
}
function calculateGender(gender) {
return parseInt(risk['low']);
}
function calculateSBP(sbp) {
return parseInt(risk['low']);
}
function calculateDBP(dbp) {
return parseInt(risk['low']);
}
function calculateTemp(temp) {
return parseInt(risk['low']);
}
function calculateRace(race) {
return parseInt(risk['low']);
}
function calculateFamily(family) {
return parseInt(risk['low']);
}
HTML
<form>
<div class="item" title="Ages 18 to 39 have a lower risk of cancer than for those over 40.">
<label>Age</label>
<input name="iAge" type="text" />
</div>
<div class="item" title="Choose your biological gender. Males are more likely to develop lung cancer than females.">
<label>Gender</label>
<input name="iGender" type="text" />
</div>
<div class="item" title="Low blood pressure is anything below 100. Normal range is 120-130. High blood pressure is over 135.">
<label>Systolic Blood Pressure</label>
<input name="iSBP" type="text" />
</div>
<div class="item" title="Low blood pressure is anything below 70. Normal range is 80-85. High blood pressure is over 90.">
<label>Diastolic Blood Pressure</label>
<input name="iDBP" type="text" />
</div>
<div class="item" title="Below 98.6 degrees Fahrenheit/37 degrees Celsius is unhealthy Normal range is at exactly 98.6 degrees/37 degrees Celsius">
<label>Temperature</label>
<input name="iTemp" type="text" />
</div>
<div class="item" title="African Americans have a higher chance of lung cancer; followed by Caucasians, Asians, Pacific Islanders, Hispanics, and Native Americans have a low percentage.">
<label>Race</label>
<input name="iRace" type="text" />
</div>
<div class="item" title="Family History of Lung Cancer. Choose Yes if an immediate family member had lung cancer. Note: The Calculator is only applicable for persons without a previous diagnosis of lung cancer.">
<label>Family</label>
<input name="iFamily" type="text" />
</div>
<input type="button" value="Calculate" onclick="calculateRisk()" />
</form>
CSS
label {
width: 160px;
float: left;
}
input[type="text"] {
vertical-align:middle;
}
.item {
margin-bottom:1.5em;
clear:both;
overflow:hidden;
}
solved How can I assign numbers in Javascript? [closed]