Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
验证输入是否仅包含数值-Javascript_Javascript_Jquery_Validation - Fatal编程技术网

验证输入是否仅包含数值-Javascript

验证输入是否仅包含数值-Javascript,javascript,jquery,validation,Javascript,Jquery,Validation,我目前正在使用下面的脚本获取我的输入,并将它们转换为我想要的内容,包括一些验证。 我已经设置了服务器端验证,并且希望有一些客户端,我已经验证了输入的长度,但是现在需要确保它们只包含数字。这适用于变量日、月和年。我尝试过使用IsNumeric(),但没有效果 <script type="text/javascript"> function timeMachine() { var day = $("#date_day").val(); var month = $

我目前正在使用下面的脚本获取我的输入,并将它们转换为我想要的内容,包括一些验证。 我已经设置了服务器端验证,并且希望有一些客户端,我已经验证了输入的长度,但是现在需要确保它们只包含数字。这适用于变量日、月和年。我尝试过使用IsNumeric(),但没有效果

<script type="text/javascript">
function timeMachine() {

    var day     = $("#date_day").val();
    var month = $("#date_month").val();
    var year    = $("#date_year").val();

    if (day == "" && month == "" && year != ""){
        if (year.length != 4){
            alert("Please enter a valid year!");
        } else{
            window.location = "/date/" + year ;
        }   
    } else if (day == "" || month == "" || year == ""){
        alert("Please enter a full date!");
    } else{
        var myDate = new Date(year, month-1, day);

        var monthNames = [ "january", "february", "march", "april", "may", "june","july", "august", "september", "october", "november", "december" ];   

        window.location = "/date/" + year + "/" + monthNames[myDate.getMonth()] + "/" + day;
    }
    return false;
}
</script>

函数timeMachine(){
var day=$(“#date_day”).val();
var月=$(“#日期月”).val();
var年=$(“#日期年”).val();
如果(日=“”&月=“”&年!=“”){
如果(年长!=4){
警报(“请输入有效年份!”);
}否则{
window.location=“/date/”+年份;
}   
}否则,如果(日=“”| |月=“”| |年=“”){
警报(“请输入完整日期!”);
}否则{
var myDate=新日期(年、月、日);
var monthNames=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
window.location=“/date/”+year+“/”+monthNames[myDate.getMonth()]+“/”+天;
}
返回false;
}

想法?

简单地说,如果您支持现代浏览器,请使用:

<input type="number" />

请尝试以下功能:

function isNumber( num ) {
    return ! isNaN( parseFloat( num ) ) && isFinite( num );
}

最好使用
我理解您的意思,但是添加input type=“number”意味着我的php不再限制长度working@L.SmithPHP如何控制你的客户端,你能澄清一下吗?
/^\d+$/.test(input.value);
function isNumber( num ) {
    return ! isNaN( parseFloat( num ) ) && isFinite( num );
}