Johny Appleseed
08-30-2012, 08:26 AM
hello there,
I have recently learned JS and i decided to start making a calculator for my webpage. the calculations went fine, but it's my first time trying to display the results in a text box in a form and i still haven't been able to figure it out. I get the number(s) and operator from a series of 3 prompts which activate when you click a button, and then i included a text box to display the results on mouse over (but i would be just as satisfied if i could just normally display it) , but nothing happens! Its probably from some error in the scripting, but i don't know what! Here is the script:
<script type="text/javascript">
function calculator(){
var number = prompt("Enter the 1st number");
var operator = prompt("Enter the operator (+,-,*,/,^2,^3,^,sqrt(),abs(),1/x,!,sin(),cos(),tan(),cot(),sec(),csc(),ln())");
var number2 = prompt("Enter the 2nd number");
function addition(number,number2) {
return parseInt(number) + parseInt(number2);
}
function factorial(number) {
if ((number == 0) || (number == 1))
return 1
else {
answer = (number * factorial(number-1) )
return answer;
}
}
if (operator == "-"){
var answer=number-number2;
}else if (operator == "*"){
var answer=number*number2;
}else if (operator == "/"){
var answer=number/number2;
}else if (operator == "^2"){
var answer=number*number;
}else if (operator == "+"){
var answer=addition(number,number2);
}else if (operator == "^3"){
var answer=number*number*number;
}else if (operator == "^"){
var answer=Math.pow(number,number2);
}else if (operator == "sqrt()" && number >= 0){
var answer=Math.sqrt(number);
}else if (operator == "sqrt()" && number < 0){
var answer=Math.sqrt(Math.abs(number))+"i";
}else if (operator == "abs()"){
var answer=Math.abs(number);
}else if (operator == "1/x"){
var answer=1/number;
}else if (operator == "!"){
var answer=factorial(number);
}else if (operator == "sin()"){
var answer=Math.sin(number);
}else if (operator == "cos()"){
var answer=Math.cos(number);
}else if (operator == "tan()"){
var answer=Math.tan(number);
}else if (operator == "cot()"){
var answer=Math.cos(number)/Math.sin(number);
}else if (operator == "sec()"){
var answer=1/Math.cos(number);
}else if (operator == "csc()"){
var answer=1/Math.sin(number);
}else if (operator == "ln()"){
var answer=Math.log(number);
}else{
alert("This calculator does not currently support operators other than addition, subtraction, multiplication, division, squaring, cubing, exponentation, square roots, absolute values, reciprocals, factorials, the 6 trig functions and natural logarithms.")
}
function output(answer) {
document.getElementById('display').value = answer;
}
}
</script>
...(I know its long) And here's the corresponding relevent HTML:
<form id="form">
<input type="button" onclick="calculator()" value="Click to Start!" />
<input type="text" id="display" onmouseover="output(answer)" />
</form>
any help would be much appreciated and thanks for your time :)
I have recently learned JS and i decided to start making a calculator for my webpage. the calculations went fine, but it's my first time trying to display the results in a text box in a form and i still haven't been able to figure it out. I get the number(s) and operator from a series of 3 prompts which activate when you click a button, and then i included a text box to display the results on mouse over (but i would be just as satisfied if i could just normally display it) , but nothing happens! Its probably from some error in the scripting, but i don't know what! Here is the script:
<script type="text/javascript">
function calculator(){
var number = prompt("Enter the 1st number");
var operator = prompt("Enter the operator (+,-,*,/,^2,^3,^,sqrt(),abs(),1/x,!,sin(),cos(),tan(),cot(),sec(),csc(),ln())");
var number2 = prompt("Enter the 2nd number");
function addition(number,number2) {
return parseInt(number) + parseInt(number2);
}
function factorial(number) {
if ((number == 0) || (number == 1))
return 1
else {
answer = (number * factorial(number-1) )
return answer;
}
}
if (operator == "-"){
var answer=number-number2;
}else if (operator == "*"){
var answer=number*number2;
}else if (operator == "/"){
var answer=number/number2;
}else if (operator == "^2"){
var answer=number*number;
}else if (operator == "+"){
var answer=addition(number,number2);
}else if (operator == "^3"){
var answer=number*number*number;
}else if (operator == "^"){
var answer=Math.pow(number,number2);
}else if (operator == "sqrt()" && number >= 0){
var answer=Math.sqrt(number);
}else if (operator == "sqrt()" && number < 0){
var answer=Math.sqrt(Math.abs(number))+"i";
}else if (operator == "abs()"){
var answer=Math.abs(number);
}else if (operator == "1/x"){
var answer=1/number;
}else if (operator == "!"){
var answer=factorial(number);
}else if (operator == "sin()"){
var answer=Math.sin(number);
}else if (operator == "cos()"){
var answer=Math.cos(number);
}else if (operator == "tan()"){
var answer=Math.tan(number);
}else if (operator == "cot()"){
var answer=Math.cos(number)/Math.sin(number);
}else if (operator == "sec()"){
var answer=1/Math.cos(number);
}else if (operator == "csc()"){
var answer=1/Math.sin(number);
}else if (operator == "ln()"){
var answer=Math.log(number);
}else{
alert("This calculator does not currently support operators other than addition, subtraction, multiplication, division, squaring, cubing, exponentation, square roots, absolute values, reciprocals, factorials, the 6 trig functions and natural logarithms.")
}
function output(answer) {
document.getElementById('display').value = answer;
}
}
</script>
...(I know its long) And here's the corresponding relevent HTML:
<form id="form">
<input type="button" onclick="calculator()" value="Click to Start!" />
<input type="text" id="display" onmouseover="output(answer)" />
</form>
any help would be much appreciated and thanks for your time :)