使用Jquery将输入字段限制在-100到100之间

时间:2017-05-09 15:02:31

标签: javascript jquery

我试图限制几个允许用户输入-100(min)和最多100(max)的输入字段,同时允许两个小数位。这个很棘手,所以它应该允许99.99但不允许100.01。还允许-99.99但不允许-100.01,按键时它需要删除错误并防止用户输入更多字符如果它们达到-100或100或-99.xx或99.xx。

我的代码到目前为止,但行为非常严厉:

$(document).off('keyup keydown', 'input.NegativeHundredPercentMax');
$(document).on('keyup keydown', 'input.NegativeHundredPercentMax', function(e) {
  var $myInput = $(this);
  if ($myInput.val().length <= 4 ) {
     if ($myInput.val() <= -101) {
         e.preventDefault();
         $myInput.val($myInput.val().slice(0, 3));
     }
  } else {
     if ($myInput.val() <= -101) {
         e.preventDefault();
         $myInput.val($myInput.val().slice(0, 4));
     }
  }
});

3 个答案:

答案 0 :(得分:0)

HTML5单独可以处理输入:

  • 只接受数字
  • 的最低条目为<span>{this.state.comissionAmount}</span>
  • 的最大输入为-100
  • 以百分数递增

这样做:

100

工作示例:

<input type="number" name="myNumber" min="-100" max="100" step="0.01" value="1" />

答案 1 :(得分:0)

你可以使用HTML5做这样的事情应该有所帮助

    Dim tblRange as Range
    Dim foundRow as Range
    Set tblRange = Range(EntryColLet & (TableStartingRow+1) & ":" & EntryColLet & AddNewEntRow)
    Set foundRow = tblRange.Find(wb21Tool.Sheets("Home").ComboBox1.Value)
    If foundRow Is Nothing Then
        'The value doesn't exist in the table, so do something
    End If
    Application.ScreenUpdating = True
End Sub

答案 2 :(得分:0)

我通过消除所有复杂性来纠正这个问题。

$(document).off('keyup keydown', 'input.NegativeHundredPercentMax');
$(document).on('keyup keydown', 'input.NegativeHundredPercentMax', function(e) {
    var $myInput = $(this);
    if ($myInput.val() < -100) {
        $myInput.val(-100);
    }
    if ($myInput.val() > 100) {
        $myInput.val(100);
    }
});