我想编写一个脚本,通过按下按钮将文本字段中的任何数字与其自身相乘,并将结果作为警报提供。 我是Javascript的新手(并且今天晚些时候必须写我的第一次考试)。 语法是杀了我,有时和Java很相似,但不是。
这是我到目前为止所提出的:
<!DOCTYPE html>
<html>
<head>
<script>
function myMultiply()
{
var x= $('#num1').val();
var y= x*x;
alert(x+" times "+x+" equals "+y);
return false;
}
</script>
</head>
<body>
<input type="text" id="num1">
<button onclick="myMultiply()">Try it</button>
<p>By clicking the button above, the value in the text field will be multiplied with itself.</p>
</body>
</html>
答案 0 :(得分:4)
您需要确保解析输入值,因为在查询时它将是一个字符串。要使用乘法对其进行操作,您需要一个数字。您通常希望将10作为第二个基数参数传递,因为有parseInt
function myMultiply() {
var x = parseInt($('#num1').val(), 10);
var y = x*x;
alert(x + " times " + x + " equals " + y);
return false;
}
答案 1 :(得分:3)
你不能将字符串相乘,它将被连接,使用 parseInt 首先将值解析为int
function myMultiply()
{
var x= parseInt($('#num1').val(), 10);
var y= x*x;
alert(x+" times "+x+" equals "+y);
return false;
}
答案 2 :(得分:0)
尝试替换var y = x * x; with var y = Number(x)* Number(x);
答案 3 :(得分:0)
除了表明你应该parseInt
的其他答案之外,还应该注意到你目前没有包含jQuery(它允许你访问$(".element")
符号)。
jQuery是一个非常常见的javascript库,可以为非常常见的Javascript任务(选择器,事件等)节省大量时间。您将在许多教程中看到$()
符号,并且要使用它,您需要包含jQuery。
这将有效:
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
function myMultiply()
{
var x= parseInt( $('#num1').val(), 10 );
var y= x*x;
alert(x+" times "+x+" equals "+y);
return false;
}
</script>
</head>
<body>
<input type="text" id="num1" />
<button onclick="myMultiply()">Try it</button>
<p>By clicking the button above, the value in the text field will be multiplied with itself.</p>
</body>
</html>
答案 4 :(得分:0)
你的代码很好。你只是错过了jquery include。
在您的其他脚本正上方添加<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
,所有内容都保持不变。
Javascript将解析字符串并在看到您尝试乘法时自动将它们转换为数字。 “4”*“2”为8,不是“44”或“42”或任何其他魔法组合。您通过引用$而没有实际包含jQuery作为必需脚本的语法错误,因此该函数最终未定义。
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
function myMultiply()
{
var x= $('#num1').val();
var y= x*x;
alert(x+" times "+x+" equals "+y);
return false;
}
</script>
</head>
<body>
<input type="text" id="num1">
<button onclick="myMultiply()">Try it</button>
<p>By clicking the button above, the value in the text field will be multiplied with itself.</p>
</body>
</html>