jQuery:将参数传递给函数不起作用

时间:2012-04-05 11:14:17

标签: javascript jquery dom

我在jQuery中将参数传递给我的简单函数时遇到问题:

当函数直接附加到元素时,一切正常。

 $companyNameInputs.bind('blur keyup',function(){
    if ($(this).hasClass('required')) {
        if (this.value == ''){
            $(this).addClass('inputError');
        }else {
            $(this).removeClass('inputError');
        }
    }
}); 

但是当我想将这个简单的检查声明为不同的功能时,它不起作用:

这是我的功能:

 var standardCheck = function($param){
    $param.addClass('inputError');
    if ($param.hasClass('required')) {
        if ($.trim($param).value == ''){
            $param.addClass('inputError');
        }else {
            $param.removeClass('inputError');
        }
    }
};

这就是我所说的:

  $companyNameInputs.bind('blur keyup',function(){
    standardCheck($(this));
});

变量声明:

  var $companyNameInputs = $("#companyName")

和HTML:

 <div>
     <p>
            <input class="text_input" type="text" id="companyName" name="companyName" value="" />
     </p>   
 </div>

请帮忙。

1 个答案:

答案 0 :(得分:0)

由于param是一个jQuery容器,你必须调用.val()并修改它的输出:

   if ($.trim($param.val()) == ''){

或获取相应的DOM元素及其value属性。

   if ($.trim($param[0].value) == ''){