Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法设置属性';类别';未定义的_Javascript_Css_Xpages_Client Side - Fatal编程技术网

Javascript 无法设置属性';类别';未定义的

Javascript 无法设置属性';类别';未定义的,javascript,css,xpages,client-side,Javascript,Css,Xpages,Client Side,我确信我正在做一些愚蠢的事情,或者遗漏了一些愚蠢的事情,但我会从客户端点击一个按钮得到以下两条错误消息: 无法设置未定义的属性“class” 无法将属性“scrollTop”设置为null 我所要做的就是设计一个InputExtArea,然后滚动到我拥有的可滚动内容div的顶部 document.getElementById(x$("#{id:obj1Error}").Attributes["class"] = "has-error&qu

我确信我正在做一些愚蠢的事情,或者遗漏了一些愚蠢的事情,但我会从客户端点击一个按钮得到以下两条错误消息:

无法设置未定义的属性“class”

无法将属性“scrollTop”设置为null

我所要做的就是设计一个InputExtArea,然后滚动到我拥有的可滚动内容div的顶部

    document.getElementById(x$("#{id:obj1Error}").Attributes["class"] = "has-error");
    var myDiv = document.getElementById(x$("#{id:contentWhiteBackground}"));
    myDiv.scrollTop = 0;
欢迎指点。干杯

更新:

按钮上的客户端代码:

// Make sure user has entered content into the first objective at minimum
var objcolparent = document.getElementById("ObjColOuter").children[0];
var objValue = objcolparent.getElementsByTagName("TEXTAREA")[0].value;

if(objValue ==""){
var o = {};
o.title = "Validation Failed";
o.body = "You must enter at least one objective before submitting";
o.alertIcon = "fa-thumbs-down fa-lg";
o.alertType = "danger";

var myDiv = document.getElementById("#{id:contentWhiteBackground}");
//document.getElementById("#{id:obj1Error}").className = "has-error";
myDiv.scrollTop = 0;
bootAlert.show('alertServer',JSON.stringify(o));
return false;
}

if(confirm("Are you sure you want to submit your objectives?")){
return true;
}else{
return false;
}
xpage上的代码,其中包含obj1Error div:

<xp:repeat id="repeat1" rows="100"
                            value="#{viewScope.fields}" var="fieldName">

                            <xp:text escape="true"
                                id="computedField4" styleClass="h5">


                                <xp:this.value><![CDATA[#{javascript:"Objective "+@RightBack(fieldName, 16)}]]></xp:this.value>
                            </xp:text>
                            <br />
                            <xp:div id="obj1Error">

                                <xp:text escape="true"
                                    id="computedField1" styleClass="h6">



                                    <xp:this.value><![CDATA[#{javascript:"Details"}]]></xp:this.value>
                                </xp:text>
                                <xp:inputTextarea
                                    id="inputTextarea1" style="height:100px;resize:none;"
                                    showReadonlyAsDisabled="true">
                                    <xp:this.value><![CDATA[#{document1[fieldName]}]]></xp:this.value>
                                    <xp:this.disabled><![CDATA[#{javascript:try{

var strStatus:string = document1.getItemValueString("status"); 
var booDisabled:boolean = true;

if(strStatus == "New" || strStatus == "Draft" || strStatus == "Returned") {
booDisabled = false;
}

return booDisabled;

}catch(e){
writeToLog("Error - ccObjectives disable objective details: " + e);
}}]]></xp:this.disabled>

                                </xp:inputTextarea>
                            </xp:div>
                            <br />
                        </xp:repeat>



您只需编写

var myDiv = document.getElementById("#{id:contentWhiteBackground}");
获取DOM元素

要设置元素的类,必须编写:

document.getElementById("#{id:obj1Error}").className = "has-error";
你只需要写

var myDiv = document.getElementById("#{id:contentWhiteBackground}");
获取DOM元素

要设置元素的类,必须编写:

document.getElementById("#{id:obj1Error}").className = "has-error";

我建议在xpages中使用而不是本机javascript:

dojo.addClass('#{id:obj1Error}','has-error');
var myDiv = dojo.byId('#{id:contentWhiteBackground}');
myDiv.scrollTop = 0;

我建议在xpages中使用而不是本机javascript:

dojo.addClass('#{id:obj1Error}','has-error');
var myDiv = dojo.byId('#{id:contentWhiteBackground}');
myDiv.scrollTop = 0;

我不确定xpages是什么,但从外观上看,您正在尝试混合javascript和jquery。我猜您可以这样做:
document.getElementById(“#{id:obj1Error}”)
x$(“#{id:obj1Error}”)
是否呈现了“obj1Error”控件?请显示完整的按钮和错误控制代码。我不确定xpages是什么,但从外观上看,您正在尝试混合javascript和jquery。我猜您可以这样做:
document.getElementById(“#{id:obj1Error}”)
x$(“#{id:obj1Error}”)
是否呈现了“obj1Error”控件?请显示完整的按钮和错误控制代码。I get:uncaughttypeerror:无法读取Null的属性'className',I get:uncaughttypeerror:无法读取Null的属性'className',scrollTop工作正常,谢谢。很确定我以前试过,但没用,这就是为什么我用了选择器。但是在样式方面,我得到的错误与尝试Georg建议的dojo方法相同:I get:Uncaught TypeError:无法将属性“className”设置为null。这意味着无法找到具有给定ID的元素,原因可能是该元素不存在,或者ID为空。要检查XPages ID是否正确解析,可以通过
警报(“#{ID:obj1Error}”)临时输出ID。如果返回空字符串,那么问题在于XPages标记,而不是CSJS。添加“0”是因为它是repeat控件中的迭代索引。问题是您的按钮似乎不在重复控制范围内。它必须在内部,以便
“#{id:obj1Error}”
在每个重复条目中返回obj1Error元素的正确id。如果它足够有一个元素用于输出重复条目中的任何错误,那么只需将obj1Error移出重复控件,这是有意义的,我已经把潜水器移到了复赛区外,它成功了。唯一的问题是它现在在repeat中设置了所有字段的样式,而不仅仅是我想要的那个字段,但我相信我能找到答案。谢谢滚动条工作正常,谢谢。很确定我以前试过,但没用,这就是为什么我用了选择器。但是在样式方面,我得到的错误与尝试Georg建议的dojo方法相同:I get:Uncaught TypeError:无法将属性“className”设置为null。这意味着无法找到具有给定ID的元素,原因可能是该元素不存在,或者ID为空。要检查XPages ID是否正确解析,可以通过
警报(“#{ID:obj1Error}”)临时输出ID。如果返回空字符串,那么问题在于XPages标记,而不是CSJS。添加“0”是因为它是repeat控件中的迭代索引。问题是您的按钮似乎不在重复控制范围内。它必须在内部,以便
“#{id:obj1Error}”
在每个重复条目中返回obj1Error元素的正确id。如果它足够有一个元素用于输出重复条目中的任何错误,那么只需将obj1Error移出重复控件,这是有意义的,我已经把潜水器移到了复赛区外,它成功了。唯一的问题是它现在在repeat中设置了所有字段的样式,而不仅仅是我想要的那个字段,但我相信我能找到答案。谢谢