动态文本框验证中的问题

时间:2011-08-16 12:27:26

标签: javascript html

我的代码如下:

 <script language="javascript" type="text/javascript">
        function doit() {

            for (j = 1; j <= 2; j++) {
                var a = document.getElementById('textbox' + j);
                if (a.value != "")
                    alert("You entered: " + a.value)
                else
                    alert("please enter something");
            }
        }
        function change() {

            my_proj.innerHTML = "";
            for (j = 1; j <= 2; j++) {

                my_proj.innerHTML = my_proj.innerHTML + '<input type="text" id="textbox' + j + '" runat="server"></input>';



            }
        }
        </script>

<form id="form1" runat="server" name="form1">
    <asp:DropDownList ID="ddl" runat="server" onChange="change()">
            <asp:ListItem>-Select-</asp:ListItem>
            <asp:ListItem>1</asp:ListItem>
            <asp:ListItem>2</asp:ListItem>
            <asp:ListItem>3</asp:ListItem>
            <asp:ListItem>4</asp:ListItem>
        </asp:DropDownList>
    <div id="my_proj">
    <input type="submit" onclick="doit()" />

    </div>
    </form>

但是在运行它时会给我以下错误:

分析器错误消息:'textbox'+ j +''不是有效的标识符。

有人可以建议我一个解决方案吗?提前谢谢

2 个答案:

答案 0 :(得分:0)

当你这样做时

my_proj.innerHTML = "";

change()中,它会删除提交按钮,因此我不确定您是如何尝试提交的。但是尝试移动div之外的按钮

<div id="my_proj">


</div>
<input type="submit" onclick="doit()" />

以下是您可以查看的等效JSFiddle

答案 1 :(得分:0)

在“更改”功能中,您只需将my_proj称为全局变量,从片段中看,情况并非如此,因此以下内容可能会有所帮助:

var my_proj = document.getElementById('my_proj');

在清除innerHTML之前。

我不承认你提到的例外,但也许它是一个红色的鲱鱼。