如何验证文本框输入的值是100的倍数或不使用jquery

时间:2018-04-16 10:50:25

标签: jquery

这是我的代码,如何检查输入的数字是100的倍数,



$("#input1").keyup(function() {
  var value = $(this).val();
  var value1 = $(this).val() * 0.1;
  var value2 = Math.round(value1);


  ($("#log,#log1").text(value));
  $("#percentage1").text(value2);
}).keyup();

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="col-md-6 redeem_input" type="text" name="enter_amt" id="input1" maxlength="5" onkeyup="if (/\D/g.test(this.value)) this.value = this.value.replace(/\D/g,'')" placeholder="Min 100 and Max 10000">
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

输入作为字符串的返回值。如果要将其用于数学,则需要使用parseInt()将其转换为数字。

String.prototype.toInt = function() { return parseInt(this, 10); };

$(".input")
  .on('keyup', function() {
    this.value = this.value.replace(/[^0-9]/g, '');

    if (this.value && this.value.toInt() >= 100) {
        $('.output').text(`is ${this.value.toInt() % 100 ? 'not' : ''} a multiple of 100.`);
    } else {
        $('.output').text('Enter a number between 100 and 10000.');
    }
}).keyup();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="input" type="text" maxlength="5">
<p class="output"></p>

怎么回事?

String.prototype.toInt - 向String对象添加一个方法以转换为数字。您可以使用本机parseInt(“number”,base),但我认为这使代码更具可读性。

this.value = this.value.replace(/[^0-9]/g, '') - 一个懒惰的验证,以确保您只获得数字。我建议使用keydown进行验证,但这需要模式代码。

if (this.value && this.value.toInt() >= 100) - 确保有一个值且大于或等于100

`is ${} a multiple of 100` - 反引号允许您将包含在$ {}内的代码与文本内联。搜索模板文字以获取更多信息。

this.value.toInt() % 100 ? 'not' : '' - 这是一个内联if语句(声明?true part:false部分),如果输入mod 100的值是0,这意味着它是一个整数,没有余数,以及哪个javascript将强制为false,添加空字符串,否则添加“not”。搜索模数和三元运算符以获取更多信息。

只是我的意见

我会尝试尽可能不使用变量。当您使用它们时,请确保该名称对其存储的数据具有高度描述性。尝试记住当你进入更复杂的代码时value1和value2代表什么并不是很有效率。