错误:格式为整数的 javascript 键无效
Error: javascript key in invalid format integer
<input type="text" name="quantity">
我想要这是一个数字(允许 0-9 和 -(,这是我的代码:
function update_quantity() {
$(this).val($(this).val().replace(/[^-?'d]/g, ''));
}
$(document).on("change, keyup", "input[type=text])", update_quantity);
前任:
123 -> valid
-123 -> valid
123- -> invalid
-1-12-123 -> invalid
-123-12 -> invalid
-->错误无法自动替换-123-12到-12312或123-到123,如何解决
这似乎是您要查找的:
https://jsfiddle.net/7vywp5nn/1/
$(document).ready(function() {
$('input[name=quantity]').on('keyup',function() {
var v = $(this).val();
if (!v.match(/^-?[0-9]*$/))
$(this).val(v.replace(/(?!^-)[^0-9]/g,''));
});
});
虽然我个人会在change
或blur
上做,而不是在用户进入时剥离。或者更好的是,返回可见错误并阻止表单提交,而不是自动替换。我真的很讨厌做这种事情的表单字段。造成糟糕的用户体验IMO。
我想要这是一个数字(允许 0-9 和 -(
123---无效!但是 -123 是有效的
请注意,RegExp
/[^-?'d]/g
允许?
字符。如果预期结果是允许0-9
和-
作为第一个字符,则可以使用不带?
字符的[^'d+]
如果值.length
1
并且索引 0
处的值-
索引处的返回值0
使用带有参数 1
的.slice()
与值的余数相适应, 替换未-
或'd+
字符,否则使用 /(-)$/g
替换输入末尾的-
字符
$(document).on("change, keyup", "input[type=text])", update_quantity);
可以删除"change, keyup"
处的逗号和选择器"input[type=text])"
处的额外)
。
function update_quantity() {
$(this).val(function(_, val) {
return val.length === 1 && val[0] === "-"
? val[0] + val.slice(1).replace(/[^'d+]/g, "")
: val.replace(/(-)$/g, "")
});
}
$(document).on("change keyup", "input[type=text]", update_quantity);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<input type="text" name="quantity">
相关文章:
- 如何修复FF和IE中的Javascript无效日期错误
- JavaScript无效日期
- javascript无效正则表达式无效组
- 修复Javascript无效的正则表达式:无效的组
- JavaScript:无效的解构目标
- javascript无效的正则表达式
- 为什么我的Javascript无效
- iphone上的Javascript无效日期
- 在IE8中调整窗口大小时JQuery/Javascript无效参数脚本错误
- 正则表达式`Javascript无效
- IE8出现JavaScript无效参数错误
- Pig拉丁程序-Javascript(无效)
- javascript无效正则表达式:Unmatched ')'
- PostBackUrl =“javascript:无效(0);限制页面上所有控件的回发
- Javascript:无效替换会导致问题
- JavaScript +无效参数错误与fireEvent('onchange')
- javascript无效量词打破了我的jQuery在asp.net
- href =“javascript:无效(0)“;与高级禁用链接
- Javascript无效分配左侧
- Javascript无效标签错误