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

时间:2014-03-04 07:16:34

标签: javascript jquery

嗨,我正在使用一个功能,我只是看不出有什么问题,请帮忙吗?

这是用于检查输入长度的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部分                              NAME:                                更新                                   

4 个答案:

答案 0 :(得分:0)

checkLength()你没有通过任何事情。

尝试将所有参数传递给它

答案 1 :(得分:0)

将三个参数传递给函数

这里的函数需要3个参数,而你没有传递它,所以它说未定义

o,min,max

答案 2 :(得分:0)

试试这个 检查这个小提琴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;
    }
}

答案 3 :(得分:0)

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

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

我想你不需要其他部分,并确保你的功能在全球范围内。