我有一个数量文本框,不应该允许负号,'。' 字符。
我尝试了一个jquery块,但它允许'。'。我想阻止'。'在文本框中
$(document).ready(function () {
$('#used_quantity').keypress(function(event) {
if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
event.preventDefault();
}
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="text" id="used_quantity">
&#13;
答案 0 :(得分:3)
使用keydown
事件。仅与键值匹配,而不是与输入的字符串匹配
<强> Updated
强>
带退格
$(document).ready(function() {
$('#used_quantity').keydown(function(event) {
if ((event.which != 46) && (event.which < 48 || event.which > 57) && (event.which != 8)) {
event.preventDefault();
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="text" id="used_quantity">
答案 1 :(得分:1)
您需要将条件修改为event.which == 46 || event.which == 45
以分别忽略.
和-
。
$(document).ready(function() {
$('#used_quantity').keypress(function(event) {
if (event.which == 46 || event.which == 45 || event.which < 48 || event.which > 57) {
event.preventDefault();
}
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="text" id="used_quantity">
&#13;
答案 2 :(得分:1)
请检查此代码。它会工作。删除
if ((event.which != 46 || $(this).val().indexOf('.') != -1) &&
(event.which < 48 || event.which > 57))
条件
if ((event.which < 48 || event.which > 57) && event.which != 45) {
检查jsliddle EXAMPLE HERE
答案 3 :(得分:0)
将条件更改为(((event.which == 46 || event.which == 45 || $(this).val().indexOf('.') != -1)) || (event.which < 48 || event.which > 57))
。在keypress
事件
$(document).ready(function() {
$('#used_quantity').keypress(function(event) {
if (((event.which == 46 || event.which == 45 || $(this).val().indexOf('.') != -1)) || (event.which < 48 || event.which > 57)) {
event.preventDefault();
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="used_quantity">
答案 4 :(得分:0)
试试这个:
$('#used_quantity').bind("change input", function () {
var value = $(this).val().replace(/([^0-9].*)/g, "");
$(this).val(value);
})