<input id='nb' name="nb" type="number" placeholder="Number"/>如果只有数字,则jQuery.val()返回值;如果有字母,则返回值。
Chrome显示了输入数字箭头(它们可以正常工作),但我也可以输入字母。奇怪的事情
顺便说一句,在mozilla和IE8上,它变成了一个普通的输入文本(我想我有一个旧的mozilla)
有什么想法吗?在使用.val()输入数字的jQuery文档中找不到任何内容
发布于 2013-05-22 21:15:42
建议使用input type="text"代替HTML5 input input type="number"
//HTML
<input id="inp" type="text" />
//JAVASCRIPT (JQUERY NEEDED)
function onlyNumbers(evt) {
// SOME OPTIONS LIKE ENTER, BACKSPACE, HOME, END, ARROWS, ETC.
var arrayExceptions = [8, 13, 16, 17, 18, 20, 27, 35, 36, 37,
38, 39, 40, 45, 46, 144];
if ((evt.keyCode < 48 || evt.keyCode > 57) &&
(evt.keyCode < 96 || evt.keyCode > 106) && // NUMPAD
$.inArray(evt.keyCode, arrayExceptions) === -1) {
return false;
}
}
$('#inp').on('keydown', onlyNumbers);
//JAVASCRIPT (WITHOUT JQUERY)
function inArray(value, arr) {
for(var i = 0; i < arr.length; i++) {
if (value === arr[i]) {
return i;
}
}
return -1;
}
function onlyNumbers(evt) {
// SOME OPTIONS LIKE ENTER, BACKSPACE, HOME, END, ARROWS, ETC.
var arrayExceptions = [8, 13, 16, 17, 18, 20, 27, 35, 36, 37,
38, 39, 40, 45, 46, 144];
if ((evt.keyCode < 48 || evt.keyCode > 57) &&
(evt.keyCode < 96 || evt.keyCode > 106) && // NUMPAD
inArray(evt.keyCode, arrayExceptions) === -1) {
return false;
}
}
document.getElementById('inp').onkeydown = onlyNumbers;正如我在我的评论中所说的,在HTML5成为一种标准的web语言之前,我们可以正确地使用它,我更喜欢使用它。
使用jQuery的
不带jQuery的
发布于 2013-05-22 19:30:53
如果你只想从输入中获取数字,那么你需要使用正则表达式。首先使用$(your_element).val()从输入获取值,然后使用正则表达式。
Here是一个活生生的例子。希望能有所帮助。
https://stackoverflow.com/questions/16689588
复制相似问题