我知道如何验证数字值的字段,但是如果无效字符已粘贴到字段中,您如何验证该字段。通常我们有一个数字字段,然后是一个操作按钮,当单击操作按钮时,数字字段可能不会触发模糊事件。在这种情况下如何强制(重新)验证?你是在动作按钮的点击事件中再做一次,还是有更优雅的解决方案?
问问题
2959 次
3 回答
3
并没有真正回答您关于粘贴的问题,而是提供了一种替代方法:您可以订阅表单的提交处理程序并在那里执行验证。更优雅的是使用jquery 验证插件,它将为您完成订阅工作,因此您只需要定义规则和错误消息:
$(function() {
$('#myform').validate({
rules: {
someFieldName: {
required: true,
number: true
}
},
messages: {
someFieldName: {
required: 'please enter a value',
number: 'please enter a valid number'
}
}
});
});
于 2010-11-06T13:00:35.410 回答
2
我使用了这种验证....检查粘贴的文本,如果它包含字母,则向用户显示错误,然后在延迟后清除该框,以便用户检查文本并进行适当的更改。
$('#txtbox').on('paste', function (e) {
var $this = $(this);
setTimeout(function (e) {
if (($this.val()).match(/[^0-9]/g))
{
$("#errormsg").html("Only Numerical Characters allowed").show().delay(2500).fadeOut("slow");
setTimeout(function (e) {
$this.val(null);
},2500);
}
}, 5);
});
于 2017-03-09T19:08:14.603 回答
0
我使用粘贴事件来触发 keyup 事件,因为只有使用粘贴事件我才能以某种方式获取输入,但我无法操纵给定的输入。这是我找到一种方法的方法(顺便说一句,我将其用于字母验证,但您也可以使用 input type = "number" 来验证数字)-
$(".NumberValidateOnPaste").on('paste', function(e) {
$(e.target).keyup();
});
$('.NumberValidateOnPaste').on('keyup',function(e){
var value = $(this).val();
var result = value.match(/^\d*$/);
if(result == null){
$(this).val('');
}
});
<label for="Pin Code">Pin Code</label>
<input type="text" name="pin_code" class="form-control NumberValidateOnPaste">
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
于 2020-09-26T13:32:07.213 回答