やあ、私はこの JSFiddleを立ち上げたので、説明するのが少し難しいので、私が話していることを知っているでしょう。この JS は、単純な正規表現を使用し/[1-9][0-9]{3}/
て 5 桁の数字 10000 ~ 99999 を検出しています。これは正常に機能し、この範囲に 5 桁を入力すると、色が緑に変わります。それ以外の場合、色は赤のままです。問題は、5 桁に達した後に文字を「削除」すると、色が本来の赤に戻らず、残りの 2 文字まで緑のままになることです。これを修正しようとしていますが、なぜこれが起こっているのかわかりませんか? 助けていただければ幸いです。
これがこのための Jquery です。
<script>
$(document).ready(function ()
{
$('#invoice').keydown(function()
{
var regex = /[1-9][0-9]{3}/;
if (regex.test($('#invoice').val()))
{
$('#invoice').css({'color': '#0f0'}).addClass('valid-short');
$('#path').val('check');
} else {
$('#invoice').css({'color': '#f00'}).removeClass();
$('#path').val('update');
}
});
});
</script>
<ul>
<li>
<label for='invoice'>Invoice</label>
<input type='text' name='invoice' id='invoice' autofocus='autofocus' />
<input type='hidden' name='path' id='path'autofocus='autofocus' required='required' />
</li>
</ul>