JavaScript变量在传入函数后未定义

JavaScript变量在传入函数后未定义,javascript,jquery,Javascript,Jquery,您好,我正在使用一个函数,但我看不出问题出在哪里,请帮助 这是检查输入长度的JavaScript函数 function checkLength(o, min, max) { if ( o.val().length > max || o.val().length < min ) { $("#uper_length_stud").show() return false; }

您好,我正在使用一个函数,但我看不出问题出在哪里,请帮助

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

function checkLength(o, min, max)
    {
        if ( o.val().length > max || o.val().length < min )
        {
            $("#uper_length_stud").show()
            return false;
        } 
        else
        {
            return true;
        }
    }
它在o.val()部分说o是未定义的。虽然我认为它是正确通过的?有什么问题吗

Html部分 姓名: 使现代化

检查长度()
中,您没有传递任何内容


尝试将所有参数传递给它

将三个参数传递给函数

这里的函数需要3个参数,而您并没有传递它,所以它表示未定义

o、 最小值,最大值试试这个 检查这把小提琴

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;
    }
}
$(“#btn”)。单击(函数(){
var name=$('#firstName').val();
x=校验长度(名称,1,4);
//其他代码如下
});
功能检查长度(o、最小值、最大值)
{
如果(o.length>max | | o.length
您可以从if条件中取出
.val()
,因为
name
是您要传递的字符串:

function checkLength(o, min, max){
    if ( o.length > max || o.length < min ){
        $("#uper_length_stud").show();
        return false;
    } 
}
函数校验长度(o、最小值、最大值){
如果(o.length>max | | o.length

我认为您不需要else部分,并确保您的函数在全局范围内。

因为您没有在函数中传递任何参数。哦,对不起,我的问题错了,我已经编辑了。您是否在
前面加了
关于名称的id
?元素存在?@PaoloLambojon。在调用checkLength函数以查看jquery是否正确返回了名称之前,您是否介意添加一个console.log?你调用val()两次,这真的是基于你的页面吗?@PaoloLambojon也发布你的html,如果可能的话,我们会更容易帮助你:)我认为你也应该添加你的html,而且你的函数在全局范围内。
function checkLength(o, min, max){
    if ( o.length > max || o.length < min ){
        $("#uper_length_stud").show();
        return false;
    } 
}