我一直在尝试将100,45这样的输入放入文本框中,然后通过单击按钮运行它,我无法弄清楚如何操作。它应该在单击按钮作为警报后发布答案。请帮忙。谢谢。
function Rad(a, b){
var Armor=a/(Math.sin((Math.PI/180)*b))
alert(Armor)
}

.box {
color: gray;
margin-top: 10px;
margin-left: 10px;
}
.equation {
color: #444;
font: inherit;
min-height: 2em;
border-radius: 3px;
padding-left: 4px;
border: 2px solid #bfbfbf;
}

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<link rel='stylesheet' href='style.css'/>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src='script.js'></script>
</head>
<body>
<div class="box">
<input class="equation" type="text">
</div>
<button onclick="Rad()">Click</button>
</body>
</html>
&#13;
答案 0 :(得分:1)
将Rad功能改为:
function Rad(){
var inp=document.getElementById('eq'); // or document.getElementsByName('equation')[0]
var splited=inp.value.split(',');
var a=parseInt(splited[0],10);
var b=parseInt(splited[1],10);
var Armor=a/(Math.sin((Math.PI/180)*b))
alert(Armor)
}
并且不要忘记分配&#39; eq&#39;作为输入的ID
答案 1 :(得分:1)
函数Rad(a, b)
有2个参数。
要解决此问题,您必须删除onClick="Rad()"
,因为此处未传递任何参数。
从输入中使用jQuery
和附加一个click
事件,而不是获取值,将其拆分 ,
并使用此2个值调用Rad
。
$('#btnRad').click(function(){
var equVal = $('.equation').val().split(',');
Rad(equVal[0], equVal[1]);
});
function Rad(a, b){
var Armor=a/(Math.sin((Math.PI/180)*b))
alert(Armor)
}
HTML修改
<button id="btnRad">Click</button>
注意:这样您就可以重复使用 Rad
功能。
function Rad(a, b){
var Armor=a/(Math.sin((Math.PI/180)*b))
alert(Armor)
}
$('#btnRad').click(function(){
var equVal = $('.equation').val().split(',');
Rad(equVal[0], equVal[1]);
});
.box {
color: gray;
margin-top: 10px;
margin-left: 10px;
}
.equation {
color: #444;
font: inherit;
min-height: 2em;
border-radius: 3px;
padding-left: 4px;
border: 2px solid #bfbfbf;
}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<link rel='stylesheet' href='style.css'/>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src='script.js'></script>
</head>
<body>
<div class="box">
<input class="equation" type="text">
</div>
<button id="btnRad">Click</button>
</body>
</html>
答案 2 :(得分:0)
目前,您尚未向a
发送b
和Rad()
。如果您说a
和b
是输入的数字,用逗号分隔,那么这将有效:
如果要将输入的两个值发送到函数,则需要再次使用Javascript来获取值并调用函数:
function Rad(a, b) {
var Armor = a / (Math.sin((Math.PI / 180) * b))
alert(Armor)
}
$('button').click(function() {
Rad($('.equation').val().split(',')[0], $('.equation').val().split(',')[1]);
});
.box {
color: gray;
margin-top: 10px;
margin-left: 10px;
}
.equation {
color: #444;
font: inherit;
min-height: 2em;
border-radius: 3px;
padding-left: 4px;
border: 2px solid #bfbfbf;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box">
<input class="equation" type="text">
</div>
<button>Click</button>
这会向Rad
,a
和b
发送分别在逗号和数字之前的数字。
例如:输入:10, 20
将显示:29.238044001630875
答案 3 :(得分:0)
这会检查输入(现在有id
)匹配“number,number”(带可选空格),并在进行数学运算之前将这些数字拉出来:
function Rad() {
var args = document.getElementById('args');
var argstr = args.value;
var matches = argstr.match(/^\s*([\d\.]+)\s*,\s*([\d\.]+)/);
if (matches) {
var a = +matches[1],
b = +matches[2];
var Armor = a / (Math.sin((Math.PI / 180) * b))
alert(Armor)
}
}
.box {
color: gray;
margin-top: 10px;
margin-left: 10px;
}
.equation {
color: #444;
font: inherit;
min-height: 2em;
border-radius: 3px;
padding-left: 4px;
border: 2px solid #bfbfbf;
}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<link rel='stylesheet' href='style.css' />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src='script.js'></script>
</head>
<body>
<div class="box">
<input id="args" class="equation" type="text">
</div>
<button onclick="Rad()">Click</button>
</body>
</html>