IE7中的对象预期错误 - 功能范围问题?

时间:2010-10-27 22:13:05

标签: javascript jquery internet-explorer function scope

我有一个我希望是一个简单易解的问题。

基本上,我有一个包含该函数的javascript块,然后我试图从另一个javascript块(在jQuery $(document).ready函数内)调用它。虽然它在Firefox上工作正常,但我在IE7中收到“对象预期”错误。这可能与范围有关,但我不确定要解决什么问题。 Firebug似乎没有对这个问题给出任何启示。

所以,这是我的功能:

    <script type="text/javascript">
    //<![CDATA[
    function onsite_validate(){
            $("#tsp_onsite_form").validate({
                errorClass: "form_error",   
                errorElement: "em",
                errorPlacement: function(error, element) {
                    error.prependTo( element.parent("label") );
                },
                highlight: function(element, errorClass) {
                     $(element).addClass(errorClass);
                },
                unhighlight: function(element, errorClass) {
                    $(element).removeClass(errorClass);
                },
                rules: { 
                    fault_found: "required"
                }, 
                messages: {
                    fault_found: "was a fault found?"
                },
                submitHandler: function(form) {
                    $.blockUI();
                    form.submit();

                } //ends submit handler     

            });
        }
//]]>
</script>

之后,我有以下内容:

<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
        onsite_validate();
});
//]]>
</script>

调用onsite_validate();

时会抛出'Object Expected'错误

我确信我犯了一个根本性的错误 - 似乎无法发现它!

非常感谢

4 个答案:

答案 0 :(得分:1)

error中的errorPlacement是什么类型的对象?不完全确定它是否作为jQuery的实例传递,但如果没有,你可能需要解决这个问题。

编辑:刚刚意识到你说它在非IE中运行。我记得在IE7中只有这个错误,并且必须修补jQuery源来处理它。你使用的是什么版本的jQuery,你自己托管它还是使用像GoogleAPI这样的东西?另外,你能提供确切的错误(文件,行等)吗?

答案 1 :(得分:0)

尝试加载相同的javascript文件两次时(在嵌套模板中)我遇到了这个错误。很难识别,因为问题发生在流程的其他地方。

我所说的是错误不一定是该函数,甚至不是代码块。

答案 2 :(得分:0)

听起来你在其中一个回调函数中有一个空引用。

只是为了进行调试,您可以尝试检查每个对象是否为空,并根据需要发出警报以确定哪个对象未设置。

例如,检查这些对象:
element.parent
错误
$(元素)

答案 3 :(得分:0)

在IIS中

Click on your website[LHS]=>Authentication[**Features View on RHS**]=>Enable only Anonymous authentication other should be disabled and click on edit, set Specific user to **IUSR** instead of [IUSR_Servernname] and No password is required