嘿伙计们,我提出了这个 JSFiddle,所以你知道我在说什么,因为它有点难以解释。这个 JS 使用一个简单的正则表达式/[1-9][0-9]{3}/
来检测一个 5 位数字 10000-99999。这工作正常,在此范围内输入 5 位数字后,颜色变为绿色,否则颜色保持为红色。问题是当达到 5 位数字后“删除”字符时,颜色不会像应有的那样恢复为红色,而是保持绿色,直到只剩下两个字符。我正在尝试解决此问题,但不确定为什么会这样?帮助将不胜感激。
这是用于此的 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>