I’ve added the following function to my wordpress theme javascript file wp-content/themes/xxx/js/script.js
function calculateBmi() {
var weight = document.bmiForm.weight.value
var height = document.bmiForm.height.value
if (weight > 0 && height > 0) {
var finalBmi = weight/(height/100*height/100)
document.bmiForm.bmi.value = finalBmi
if (finalBmi < 18.5) {
document.bmiForm.meaning.value = "That you are too thin."
}
if (finalBmi > 18.5 && finalBmi < 25) {
document.bmiForm.meaning.value = "That you are healthy."
}
if (finalBmi > 25) {
document.bmiForm.meaning.value = "That you have overweight."
}
}
else{
alert("Please Fill in everything correctly")
}
}
I have added the following code on a wordpress page (in admin) with a form that calls the function when you press the button
<form name="bmiForm">
Your Weight(kg): <input type="text" name="weight" size="10"><br />
Your Height(cm): <input type="text" name="height" size="10"><br />
<input type="button" value="Calculate BMI" onClick="calculateBmi()"><br />
Your BMI: <input type="text" name="bmi" size="10"><br />
This Means: <input type="text" name="meaning" size="25"><br />
<input type="reset" value="Reset" />
</form>
Nothing happens when I click the button and chrome console gives the following message.
Uncaught ReferenceError: calculateBmi is not defined ?page_id=1368:126
onclick
What is it that is wrong?
It’s just a matter of enqueuing properly. First, a test page with the HTML provided. Note the use of the global
$b5f_hook
to catch our page afterwards.Enqueuing the script, not sure why jQuery is being included as dependency, but it doesn’t matter:
And the script file contains the JS code provided:
your function is not defined because it contains syntax errors.
Add “;” after each line and check for other errors e.g. using jslint tool