我的代码如下:
<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 +''不是有效的标识符。
有人可以建议我一个解决方案吗?提前谢谢
答案 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之前。
我不承认你提到的例外,但也许它是一个红色的鲱鱼。