0

我在论坛上搜索,但没有找到正确的答案。我正在尝试的是

  1. 接受十进制数字的文本框,因此用户应该能够输入 0 或 1 个小数点,即。点(。)
  2. 点前最多 5 位,点后最多 5 位
  3. 不允许使用其他字符,但箭头键和 f1 f2 等其他键应该可以使用

例如。它应该对以下有效 12345 12345.1 12345.12345 1.12345 .12345

在制作这个文本框时需要帮助。

4

1 回答 1

0

试试这个:

function isFloat(s) {
    return s ? /\d{1,5}(?:\.\d{1,5})?/.test(s) : true;
}


$('input.float').on('change', function() {
  if (!isFloat($(this).val())) {
    alert('not a float');
  }
});

这是小提琴:http: //jsfiddle.net/foxbunny/Vabj4/

该代码没有使该字段成为必填项。如果它是空的,它就会过去。如果您可以通过true将三元条件更改为false(第 2 行)来更改它。

编辑:

哦,如果你想限制对某些键的输入,你应该重新考虑。这不是一个很好的用户体验。人们习惯于输入任何东西。最好只是警告他们。这样做更便宜,而且足够有效:

http://jsfiddle.net/foxbunny/Vabj4/1/

于 2012-12-29T13:10:27.487 回答