ОБНОВЛЕНО с момента последнего голосования против ....
Я видел только часть
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;