ОБНОВЛЕНО, так как в последний раз это было отклонено ....
Я видел только часть
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;