【问题标题】:JavaScript validating input only contains integers on submitJavaScript 验证输入仅在提交时包含整数
【发布时间】:2023-03-08 22:36:02
【问题描述】:

我一直在努力寻找解决此问题的好方法。这是为 IE6 开发的技巧,因此不支持 HTML5(这就是让这很痛苦的原因,以及为什么按钮实际上是一个跨度)。我需要允许所有输入到输入元素,但在提交时我需要验证输入是否为整数,如果它包含字母字符或小数,则会引发错误。

 <table id="studentIdInputTable">
        <tr><td colspan="3"><hr class="style-hr" /></td></tr>

        <tr><td><span class="underline bold">Selection 1</span></td>
        <td class="center"><span class="small-text">Employee ID</span></td>
         </tr>
        <tr><td>Please enter your Student ID to <span class="bold italic">start your registration process</span></td>
        <td class="center"><input type="text" maxlength="11" id="tbNewStudentId" /></td>
        <td> <span id="btnNewStudent" class="validation-button">Start</span></td></tr>
   </table>

我有 HTML 页面的原生 javascript,如下所示

function CheckNewStudentId(){
var newStudentID = $("tbNewStudentId").val();
newEmployeeID = parseInt(newEmployeeID, 10);
        var isNum = /^\d+$/.test(IDnumber);
        if (isNum == false) {
            alert(IDnumber + " is not a valid student number. Please enter only numbers 0-9, containing no alphabetical characters.");
        }
}

如果这是用于更新的浏览器平台会更容易。有什么想法可以解决这个问题吗?

编辑*** 供其他用户参考,使用此功能解决了这个问题

 function validIdCheck(Input){
 if(Number.isInteger(Input)==false){
alert("This is not a valid ID");
}
}

连接到这个jQuery点击函数

 $("#btnNewStudent").click(function(){
   var newStuId = $("#tbNewStudentId").val();
   newStuId=parseInt(newStuId);
   validIdCheck(newStuId);
 });

【问题讨论】:

标签: javascript jquery html function internet-explorer-6


【解决方案1】:

要检查一个数字是否为整数,试试这个。它返回一个布尔值。

Number.isInteger(yourNumber) 

文档:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests

【讨论】:

  • function validIdCheck(Input){ if(Number.isInteger(Input)==false){ alert("This is not a valid ID"); } }
【解决方案2】:

使用您的部分代码:

function validateStudentId(id) { return /^\d+$/.test(id) }

如果它是从 0 到 9 的数字或数字组合,则返回 true。

如果 id 不能以 0 开头,试试这个:

function validateStudentId(id) { return /^([1-9]|[1-9]\d+)$/ }

快速解释:

  1. ^ 以
  2. 开头
  3. [1-9] 1 到 9 之间的数字
  4. | 或
  5. \d 数字(0 到 9)
  6. + 至少出现一次,最多出现无限次
  7. $ 以
  8. 结尾

测试一下here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 2014-05-27
    • 1970-01-01
    • 2021-10-20
    • 2011-06-26
    • 1970-01-01
    相关资源
    最近更新 更多