未捕获的ReferenceError:onload未定义textL

时间:2017-12-06 14:31:24

标签: javascript jquery asp.net

我正在尝试使用以下代码在我的DataAccess类上显示列表:

      <head runat="server">
<title>Challenge</title>
<script src="JS/challenge.js?v=1.1"></script>
<script>

        function textL() {
        <%foreach (Challenge.Models.TextArea textarea in
        Challenge.Data.DataAccess.GetAllTextareas(@"C:\Users\EasySoft\Downloads\Challenge\Challenge\Challenge\Data\saveText.xml")) {
                %>
         id++;
         var textarea = document.createElement("textarea");
         textarea.setAttribute("id", "txt" + <% textarea.GetId(); %>);
                textarea.setAttribute("class", "txt");
                textarea.setAttribute("value", <% textarea.GetValue(); %>)
                document.querySelector("#parent").appendChild(textarea);
                <%
        }%>
    }
</script>

并使该功能在我的身体上运行

<body onload="textL"> 
<form id="form" runat="server">
    <div id="parent">   
        <textarea id="txt0" class="txt"></textarea>
    </div>
    <input type="button" onclick="toggle(this)" style="color: blue" value="ON" />
    <input type="button" onclick="add_textarea()" value="Add textarea" />
    <br />
    <input type="button" class="btn_delete" onclick="delete_textarea()" value="Delete textarea" />
</form>

但是上面的错误?知道如何解决这个问题吗?

这是渲染的textL函数

function textL() {

     id++;
     var textarea = document.createElement("textarea");
     textarea.setAttribute("id", "txt" + );
            textarea.setAttribute("class", "txt");
            textarea.setAttribute("value", )
            document.querySelector("#parent").appendChild(textarea);

     id++;
     var textarea = document.createElement("textarea");
     textarea.setAttribute("id", "txt" + );
            textarea.setAttribute("class", "txt");
            textarea.setAttribute("value", )
            document.querySelector("#parent").appendChild(textarea);

     id++;
     var textarea = document.createElement("textarea");
     textarea.setAttribute("id", "txt" + );
            textarea.setAttribute("class", "txt");
            textarea.setAttribute("value", )
            document.querySelector("#parent").appendChild(textarea);

}

1 个答案:

答案 0 :(得分:-1)

基于下面的渲染脚本

function textL() {
     id++;
     var textarea = document.createElement("textarea");
     textarea.setAttribute("id", "txt" + );
            textarea.setAttribute("class", "txt");
            textarea.setAttribute("value", )
            document.querySelector("#parent").appendChild(textarea);

     id++;
     var textarea = document.createElement("textarea");
     textarea.setAttribute("id", "txt" + );
            textarea.setAttribute("class", "txt");
            textarea.setAttribute("value", )
            document.querySelector("#parent").appendChild(textarea);

     id++;
     var textarea = document.createElement("textarea");
     textarea.setAttribute("id", "txt" + );
            textarea.setAttribute("class", "txt");
            textarea.setAttribute("value", )
            document.querySelector("#parent").appendChild(textarea);
}

由于此语法而出现错误

textarea.setAttribute("id", "txt" + );

和这个语法

textarea.setAttribute("value", )

呈现上面两行代码是因为您错误地使用<% %>语法将textarea.GetId()textarea.GetValue()的结果插入以下两行

textarea.setAttribute("id", "txt" + <% textarea.GetId(); %>);
textarea.setAttribute("value", <% textarea.GetValue(); %>)

您应该在=之后添加<%,移除;,并使用双引号括住<%= %>部分,如下所示

textarea.setAttribute("id", "txt<%= textarea.GetId() %>");
textarea.setAttribute("value", "<%= textarea.GetValue() %>")