ユーザーの入力は「value1、value2、value3、valu4 ...」のようになり、value [i]-value[i-1]はたとえば0.5より大きくなければなりません。最小値は0、最大値は100です。たとえば、「0,5,10.5,20」はOKです。私の基本的なコードは
$('.click').click(function () {
var flag = true;
var str = $('input').val();
var arr = str.split(',');
if (arr.length > 1) {
jQuery.each(arr, function (i) {
if (arr[i] < 0 || arr[i] > 100 || arr[i + 1] - arr[i] < 0.5) {
flag = false
}
});
if (flag) {
//main function must never start before we complete that check on all the values
alert("OK, our function starts now. Your input is " + str)
} else {
alert("Please, check your input: " + str)
}
}
});
これはうまくいくようですが、よくわかりません。何かが足りないのかもしれません。私の質問は、配列チェックが終了する前にメイン関数を強制的に開始しないようにする方法です。arr
その中のすべての番号がチェックされる前に開始する可能性はありますか?そして、おそらくそのフラグを作成する必要はありません。それでは、この種の検証を実行するために何をしますか?