これが最後に反対投票されたので更新されました...
見ただけ
var dots = 5
function increase(){
dots = dots+5;
}
以前は、txt
ボックスが変数をフィードすることが後で示されましたdots
。このため、悪意のあるコードではなく整数のみが含まれていることを確認するために、入力を「クレンジング」する必要があります。
これを行う簡単な方法の1つは、テキストボックスを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;