将文本框链接到由按钮运行的javascript公式
Linking a textbox to a javascript equation ran by a button
我一直试图在文本框中输入一个像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>
函数Rad(a, b)
有两个参数。
为了解决这个问题,您必须删除onClick="Rad()"
,因为您在这里没有传递任何参数。
使用jQuery
和附加一个类似下面的click
事件,而从输入中获取值并将其除以,
,然后用这两个值调用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>
将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)
}
并且不要忘记将'eq'指定为输入的id
这会检查输入(现在有一个id
)是否与"数字,数字"(带可选空格)匹配,并在进行数学运算之前取出这些数字:
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>
当前,您尚未将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
相关文章:
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 向下滚动时运行javascript
- 在Android WebView中运行Javascript-onPageFinished循环
- 在父网页的iframe中运行JavaScript
- 有条件地运行javascript函数-Razor,HTML
- 如何通过获取用户输入和使用按钮来运行JavaScript函数
- 使用c#在Web服务器上运行JavaScript方法
- 单击链接时停止运行javascript
- 在浏览器检查表单之前运行javascript onsubmit
- 如何在表单提交事件后运行JavaScript*
- Mediawiki小部件将不会运行javascript
- 有没有一种方法可以在服务器端页面加载之前在加载时运行javascript
- 在GitHub上运行JavaScript Koans
- Chrome扩展:是否有一种方法可以运行JavaScript来获取页面上的内部html,并将其保存到扩展中的变量中
- 在不加载页面的情况下运行javascript
- [AutoIt]如何使用FF.au3在FireFox上的页面中运行javascript
- 仅在屏幕媒体上运行javascript/jquery,而不是打印
- Scala提升了如何运行javascript函数并将返回值存储在变量中
- 安卓系统:通过loadUrl运行javascript时,网络视图中的视频会冻结
- 在页面加载完成之前,使用URL参数运行JavaScript