javascript - 无法设置未定义的属性 'class'

标签 javascript css xpages client-side

我确定我正在做一些愚蠢的事情,或者错过了一些愚蠢的事情,但是我从客户端点击按钮时收到了以下 2 条错误消息:

Cannot set property 'class' of undefined

Cannot set property 'scrollTop' of null

我要做的就是设置一个 inputTextArea 的样式,然后滚动到我拥有的可滚动内容 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";

关于javascript - 无法设置未定义的属性 'class',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45078293/

相关文章:

javascript - Prestashop 模块 Uncaught ReferenceError

css - AdSense - 在窗口大小调整时调整响应式广告拦截的大小

java - 无法从 Java 代理访问文件系统

javascript - 单击按钮时强制下载pdf

.net - 如何在 .ascx 页面中使用 javascript

javascript - 将元素的样式设置为它已有的值是否会影响性能?还是所有浏览器都忽略它?

Android Chrome 多行文本阴影渲染模糊

css - 如何隐藏 div 的溢出?

excel - 将数据导出到现有 Excel 文件

list - xpages 字段如何接受其他值