自上次投票以来已更新。...
我只看到那部分
var dots = 5
function increase(){
dots = dots+5;
}
之前,但后来向我展示了该txt
框可以输入变量dots
。因此,您需要确保“清除”输入,以确保输入仅包含整数,而不包含恶意代码。
一种简单的方法是使用onkeyup()
事件分析文本框,以确保其具有数字字符:
<input size="40" id="txt" value="Write a character here!" onkeyup="GetChar (event);"/>
如果该值不是数字,则该事件将产生错误并清除最后一个字符:
<script type="text/javascript">
function GetChar (event){
var keyCode = ('which' in event) ? event.which : event.keyCode;
var yourChar = String.fromCharCode();
if (yourChar != "0" &&
yourChar != "1" &&
yourChar != "2" &&
yourChar != "3" &&
yourChar != "4" &&
yourChar != "5" &&
yourChar != "6" &&
yourChar != "7" &&
yourChar != "8" &&
yourChar != "9")
{
alert ('The character was not a number');
var source = event.target || event.srcElement;
source.value = source.value.substring(0,source.value-2);
}
}
</script>
显然,您也可以使用正则表达式来做到这一点,但是我走了一条懒惰的路。
从那时起,您将知道框中只能有数字,您应该可以使用eval()
:
dots = eval(dots) + 5;