怎么验证文本框输入的是整数

这是我的js代码:

function onclike(){ var price=document.getElementById(price).value; var re = /^[0-9]+.?[0-9]*$/; var name=document.getElementById(name).value; if(name==""){ alert("请输入图书名称"); return false; } if(re.text(price)){ alert("请输入数字"); document.getElementById(price).value=null; return false; } }

这是我的html代码:

添加图书

图书名称:
价格:

我要在提交之前验证价格输入的是数字,若不是数字则清空文本框内容
我用js写了个函数 在form里面调用onsubmit没反应 在submit控件用onclike() 也没反应 各位大佬帮我看看是不是哪里写错了 或者有没有其他方法

这是html代码:

添加图书

图书名称:
价格:
数量:

图片说明

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h3>添加图书</h3>
<div>
    <span>图书名称:</span><input id="name" type="text">
</div>
<div>
    <span>价格:</span><input id="price" type="text">
</div>
<button type="submit" onclick="onclike()">按钮</button>
<script>
    function onclike(){
        var price=document.getElementById('price').value;
        var re = /^[0-9]+.?[0-9]*$/;
        var name=document.getElementById('name').value;
        if(name==""){ alert("请输入图书名称"); return false; }
        if(re.text(price)){ alert("请输入数字"); document.getElementById(price).value=null; return false; }
    }
</script>
</body>
</html>

代码如上,document.getElementById('name')传id名的时候要加引号

onclick()事件貌似是这么写。。。好像不是**onclike**()。。。

孩子,你单词写错了,onclick不是onclike

var ex = /^\d+$/;
if (ex.test(str)) {
// 则为整数
}

在submit控件用onclike() 也没反应----onclike写错了,是onclick

http://tool.oschina.net/regex#

参考这个。

为什么不用正则表达式

  1. type=text:别人输入有可能是非数值,那么正则表达式建议验证非正整数(包括字母中文等)
  2. onclick写错啦

var ex = /^\d+$/;
if (ex.test(str)) {
// 则为整数
}
另外,捏onclick拼错了

var type="^[0-9]*[1-9][0-9]*$";
var r=new RegExp(type);
var flag=r.test(subjectHour.value);
if(!flag){
  alert("课时应为正整数");
  subjectHour.focus();
  return false;

js:

var chk = function(){  return !isNaN(input) && input.indexOf('.')<0 ;};
var input = '123.2';
var input1 = '1232';
chk(input);
chk(input1);

这个方法应该很多,失去焦点后正则表达式,或者h5里patter属性内写正则,或者失去焦点后,做个parseInt,方法很多的