触发键盘功能时清除文本字段

时间:2018-01-04 02:02:12

标签: javascript jquery

我试图在触发keyup功能后清除文本字段。

我使用了一个简单的val('')来清除,但它无效。如果有的话。我希望我的文字字段不允许在第一个地方输入句点或.,例如.12

这是我的keyup功能:

$('#gross-mass').keyup(function(event) {
  var currentVal = $(this).val();

  if (parseFloat(currentVal) == 0.00 && (event.which == 48 || event.which == 96)) {
    //currentVal = currentVal.slice(0, 3);
    currentVal.val(' ');
  }

  $(this).val(currentVal);
});

2 个答案:

答案 0 :(得分:1)

currentVal不是函数,它是一个字符串。您可以像这样设置其值:

currentVal = ' '

答案 1 :(得分:1)

首先,您需要使用$(this).val(""),而不是currentVal.val(' ');(在我的示例中,它只是el.val(""),因为我已经存储了var el = $(this))。您应该在方法结束前删除此行:$(this).val(currentVal);,因为它将input的值设置回currentVal。以下是工作示例,尝试键入0input的值将在keyup事件后清除:

$('#gross-mass').keyup(function(event) {
  var el = $(this)
  var currentVal = el.val();

  if (parseFloat(currentVal) == 0.00 && (event.which == 48 || event.which == 96)) {
    el.val("");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="gross-mass">