繁体   English   中英

在函数中传递JavaScript变量后未定义

[英]JavaScript variable is undefined after being passed in a function

嗨,我正在使用一个函数,但是我看不出问题出在哪里,请帮忙吗?

这是用于检查输入长度的JavaScript函数。

function checkLength(o, min, max)
    {
        if ( o.val().length > max || o.val().length < min )
        {
            $("#uper_length_stud").show()
            return false;
        } 
        else
        {
            return true;
        }
    }

它下面是一个调用它的代码。

$("#signin").click(function(e) {
       var name = $("#up_stud_fname").val(), x;
       x = checkLength(name, 3, 50);
       //other codes follow
}

它在o.val()部分说o是未定义的。 虽然我认为传递正确? 似乎是什么问题?

HTML部件名称:更新

checkLength()您没有传递任何东西。

尝试将所有参数传递给它

将三个参数传递给函数

这里的函数需要3个参数,并且您没有传递它,所以它说undefined

o,最小,最大

试试这个,检查这个小提琴http://jsfiddle.net/pratbhoir/9QTYk/

HTML代码

<input id='firstName' />
<button id="btn"> Button</button>

JavaScript代码

$("#btn").click(function() {
    var name = $('#firstName').val();
    x = checkLength(name,1,4);
    //other codes follow
});


function checkLength(o, min, max)
{
    if ( o.length > max || o.length < min )
    {
        //$("#uper_length_stud").show()
        return false;
    } 
    else
    {
        return true;
    }
}

您可以从if条件中取出.val() ,因为name是您要传递的字符串:

function checkLength(o, min, max){
    if ( o.length > max || o.length < min ){
        $("#uper_length_stud").show();
        return false;
    } 
}

而且我认为您不需要else部分,并确保您的功能在全局范围内。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM