通过按钮将文本框链接到javascript等式

时间:2015-04-08 15:47:09

标签: javascript

我一直在尝试将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;
&#13;
&#13;

4 个答案:

答案 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发送bRad()。如果您说ab是输入的数字,用逗号分隔,那么这将有效:

如果要将输入的两个值发送到函数,则需要再次使用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>

这会向Radab发送分别在逗号和数字之前的数字。

例如:输入: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>