[英]onClick from button to function
This is a work in progress (a calculator and some other stuff), but what I'm trying to do at the moment is whenever you type in some number into the results of the calculator, and you press "+" the onclick will call checkValidity which will determine if what you typed in was integer or not integer. 这是一个正在进行中的工作(一个计算器和其他一些东西),但是我现在想做的是只要您在计算器的结果中输入一些数字,然后按“ +”,onclick就会调用checkValidity将确定您键入的内容是整数还是非整数。 It will send an alert saying integer or not an integer.
它将发送一个警告,说整数或非整数。 My issue is that the onclick won't do anything.
我的问题是onclick不会执行任何操作。 I tried emptying the checkValidity function of everything but alert("test); and it still won't work. Could someone please explain what I'm doing wrong?
我试过清空alert(“ test)之外的所有东西的checkValidity函数;它仍然无法正常工作。有人可以解释一下我在做什么错吗?
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript>">
function checkValidity()
{
var Calculator = document.getElementById("Calculator")
if (Calculator.Result.value === parseInt(test, 10))
{
alert("Integer!");
}
else
{
alert("Not an integer, press C");
}
}
</script>
<form name="Calculator">
First name:
<br>
<input type="text" name="firstname">
<br>
Last name:
<br>
<input type="text" name="lastname">
<br>
Student ID:
<br>
<input type="text" name="ID">
<br>
Biography:
<br>
<textarea maxlength=30 rows="2" cols="30">
</textarea>
<br>
Result:
<table border="1" style="width:100%">
<input type="text" name="Result" size="12">
<tr>
<td><Input type="button" Name="zero" Value="0" OnClick="Calculator.Result.value += '0'"> </td>
<td><Input type="button" Name="one" Value="1" OnClick="Calculator.Result.value += '1'"></td>
<td><Input type="button" Name="two" Value="2" OnClick="Calculator.Result.value += '2'"></td>
<td><Input type="button" Name="three" Value="3" OnClick="Calculator.Result.value += '3'"></td>
</tr>
<tr>
<td><Input type="button" Name="four" Value="4" OnClick="Calculator.Result.value += '4'"></td>
<td><Input type="button" Name="five" Value="5" OnClick="Calculator.Result.value += '5'"></td>
<td><Input type="button" Name="six" Value="6" OnClick="Calculator.Result.value += '6'"></td>
<td><Input type="button" Name="seven" Value="7" OnClick="Calculator.Result.value += '7'"></td>
</tr>
<tr>
<td><Input type="button" Name="eight" Value="8" OnClick="Calculator.Result.value += '8'"></td>
<td><Input type="button" Name="nine" Value="9" OnClick="Calculator.Result.value += '9'"></td>
<td><Input type="button" Name="plus" Value="+" OnClick="checkValidity()"></td>
<td><Input type="button" Name="minus" Value="-" OnClick="Calculator.Result.value += '-'"></td>
</tr>
<tr>
<td><Input type="button" Name="equals" Value="=" OnClick="Calculator.Result.value = eval(Calculator.Result.value)"></td>
<td><Input type="button" Name="divide" Value="/" OnClick="Calculator.Result.value += '/'"></td>
<td><Input type="button" Name="multiply" Value="*" OnClick="Calculator.Result.value += '*'"></td>
<td><Input type="button" Name="clear" Value="C" OnClick="Calculator.Result.value = ''"></td>
</tr>
</table>
<span id="HoursWorkedThisWeek"></span>
<Input type="button" Name="Save" Value="Save" OnClick="Calculator.HoursWorkedThisWeek = Calculator.Result.value">
<Input type="button" Name="Submit" Value="Submit">
</form>
</head>
</html>
try this it worked 试试这个工作
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form id="Calculator" name="Calculator">
First name:
<br>
<input type="text" name="firstname">
<br>
Last name:
<br>
<input type="text" name="lastname">
<br>
Student ID:
<br>
<input type="text" name="ID">
<br>
Biography:
<br>
<textarea maxlength=30 rows="2" cols="30">
</textarea>
<br>
Result:
<table border="1" style="width:100%">
<input type="text" name="Result" size="12">
<tr>
<td><Input type="button" Name="zero" Value="0" OnClick="Calculator.Result.value += '0'"> </td>
<td><Input type="button" Name="one" Value="1" OnClick="Calculator.Result.value += '1'"></td>
<td><Input type="button" Name="two" Value="2" OnClick="Calculator.Result.value += '2'"></td>
<td><Input type="button" Name="three" Value="3" OnClick="Calculator.Result.value += '3'"></td>
</tr>
<tr>
<td><Input type="button" Name="four" Value="4" OnClick="Calculator.Result.value += '4'"></td>
<td><Input type="button" Name="five" Value="5" OnClick="Calculator.Result.value += '5'"></td>
<td><Input type="button" Name="six" Value="6" OnClick="Calculator.Result.value += '6'"></td>
<td><Input type="button" Name="seven" Value="7" OnClick="Calculator.Result.value += '7'"></td>
</tr>
<tr>
<td><Input type="button" Name="eight" Value="8" OnClick="Calculator.Result.value += '8'"></td>
<td><Input type="button" Name="nine" Value="9" OnClick="Calculator.Result.value += '9'"></td>
<td><Input type="button" Name="plus" Value="+" OnClick="checkValid()"></td>
<td><Input type="button" Name="minus" Value="-" OnClick="Calculator.Result.value += '-'"></td>
</tr>
<tr>
<td><Input type="button" Name="equals" Value="=" OnClick="Calculator.Result.value = eval(Calculator.Result.value)"></td>
<td><Input type="button" Name="divide" Value="/" OnClick="Calculator.Result.value += '/'"></td>
<td><Input type="button" Name="multiply" Value="*" OnClick="Calculator.Result.value += '*'"></td>
<td><Input type="button" Name="clear" Value="C" OnClick="Calculator.Result.value = ''"></td>
</tr>
</table>
<span id="HoursWorkedThisWeek"></span>
<Input type="button" Name="Save" Value="Save" OnClick="Calculator.HoursWorkedThisWeek = Calculator.Result.value">
<Input type="button" Name="Submit" Value="Submit">
</form>
<script type="text/JavaScript">
function checkValid()
{
var Calculator = document.getElementById("Calculator")
var test =Calculator[4].value;
if (parseInt(Calculator[4].value) === parseInt(test, 10))
{
alert("Integer!");
}
else
{
alert("Not an integer, press C");
}
}
</script>
</body>
</html>
You made a few small mistakes that caused your code to not work. 您犯了一些小错误,导致您的代码无法正常工作。
I'll explain them after this working example : 在这个工作示例之后,我将对其进行解释:
function validate() { if (Calculator.Result.value == parseInt(Calculator.Result.value,10)) { alert("Integer!"); } else { alert("Not an integer, press C"); } }
<body> <form name="Calculator"> First name: <br /><input type="text" name="firstname" /><br /> Last name: <br /><input type="text" name="lastname" /><br /> Student ID: <br /><input type="text" name="ID" /><br /> Biography: <br /><textarea maxlength=30 rows="2" cols="30"></textarea><br /> Result: <table border="1" style="width:100%;"> <input type="text" name="Result" size="12" /> <tr> <td><input type="button" name="zero" value="0" onclick="Calculator.Result.value += '0'" /> </td> <td><input type="button" name="one" value="1" onclick="Calculator.Result.value += '1'" /></td> <td><input type="button" name="two" value="2" onclick="Calculator.Result.value += '2'" /></td> <td><input type="button" name="three" value="3" onclick="Calculator.Result.value += '3'" /></td> </tr> <tr> <td><input type="button" name="four" value="4" onclick="Calculator.Result.value += '4'" /></td> <td><input type="button" name="five" value="5" onclick="Calculator.Result.value += '5'" /></td> <td><input type="button" name="six" value="6" onclick="Calculator.Result.value += '6'" /></td> <td><input type="button" name="seven" value="7" onclick="Calculator.Result.value += '7'" /></td> </tr> <tr> <td><input type="button" name="eight" value="8" onclick="Calculator.Result.value += '8'" /></td> <td><input type="button" name="nine" value="9" onclick="Calculator.Result.value += '9'" /></td> <td><input type="button" name="plus" value="+" onclick="validate()" /></td> <td><input type="button" name="minus" value="-" onclick="Calculator.Result.value += '-'" /></td> </tr> <tr> <td><input type="button" name="equals" value="=" onclick="Calculator.Result.value = eval(Calculator.Result.value)" /></td> <td><input type="button" name="divide" value="/" onclick="Calculator.Result.value += '/'" /></td> <td><input type="button" name="multiply" value="*" onclick="Calculator.Result.value += '*'" /></td> <td><input type="button" name="clear" value="C" onclick="Calculator.Result.value = ''" /></td> </tr> </table> <span id="HoursWorkedThisWeek"></span> <input type="button" name="Save" value="Save" onclick="Calculator.HoursWorkedThisWeek = Calculator.Result.value" /> <input type="button" name="Submit" value="Submit" /> </form> </body>
<head>
tag. <head>
标记内。 Only the <script>
should be inside the head (or better yet, in a separate JS-file), all the HTML elements should be inside a <body>
tag. <script>
应该在头部内(或者更好的是,在单独的JS文件中),所有HTML元素都应该在<body>
标记内。 id
, only a name
. id
,只有name
。 Therefor the variable Calculator
(bad practice to use uppercase for variable-names) referred to nothing. Calculator
(对于变量名使用大写字母的错误做法)一无所获。 In your case you don't even need the variable, because you just access the form by name directly, so I removed that variable at the start of the function. ===
in the if-clause didn't work, it was too strict. ===
无效,太严格了。 ==
will work however. ==
将起作用。
And a few other mistakes that may or may not break the code, but were bad practice non the less: 还有一些其他可能会或可能不会破坏代码的错误,但仍然是不好的做法:
OnClick
should be onclick
(all lowercase). OnClick
应该是onclick
(全部为小写)。 Same goes for Name
and Value
. Name
和Value
。 <input>
were written with an uppercase: <Input>
. <input>
用大写形式编写: <Input>
。 <br>
and <input>
need their own closing tags, like so: <br />
and <input />
<br>
和<input>
需要它们自己的结束标记,如下所示: <br />
和<input />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.