Request.Form.FindAllKeys 在 IE8 中不起作用
Request.Form.FindAllKeys Not Working In IE8
>我正在页面客户端创建文本框,如下所示。
var _text = document.createElement("input");
_text.setAttribute("type", "text");
_text.setAttribute("id", "txtAsName" + num);
_text.setAttribute("name", "txtAsName" + num);
在服务器端代码中,我检索表单上任何文本框的 id(您可以添加 txtAsName1、txtAsName2、txtAsName3,然后删除所有客户端的 txtAsName2,因此在我的情况下,在回发期间抓取表单左侧的任何文本框很重要)
我使用以下方法获取服务器端其余文本框的 ID:
string[] allFormKeys = Request.Form.AllKeys;
foreach (string key in allFormKeys)
{
Response.Write("Key Name: " +key + "<br/>");
if (key.StartsWith("txtAsName"))
{
txtBoxes.Add(key);
}
}
在Firefox中,这工作正常,但在IE8 Request.Form.AllKeys中不返回文本框!我可以通过 Response.Write 看到这一点,在 firefox 中我得到了文本框。
我检查了 html 中是否有 2 个表单标签,但事实并非如此
您是否可能忘记将新创建的元素附加到表单中?
<script>
var input1 = document.createElement("input");
input1.setAttribute("type", "text");
input1.setAttribute("name", "testing123");
input1.setAttribute("value", "i like cake");
document.getElementById("formid").appendChild(input1);
</script>
你没有在你的问题中说你把文本输入元素添加到什么地方。我使用了您的代码,确保我将文本输入字段添加为表单元素中的某个位置的子字段,并且我肯定会看到它们被回发到服务器:
<div id="testDiv"></div>
<br />
<asp:Label ID="Label1" runat="server" />
<asp:Button runat="server" />
<script type="text/javascript">
var num = 0;
var _text = document.createElement("input"); _text.setAttribute("type", "text"); _text.setAttribute("id", "txtAsName" + num); _text.setAttribute("name", "txtAsName" + num);
testDiv.appendChild(_text);
num++;
_text = document.createElement("input"); _text.setAttribute("type", "text"); _text.setAttribute("id", "txtAsName" + num); _text.setAttribute("name", "txtAsName" + num);
testDiv.appendChild(_text);
num++;
_text = document.createElement("input"); _text.setAttribute("type", "text"); _text.setAttribute("id", "txtAsName" + num); _text.setAttribute("name", "txtAsName" + num);
testDiv.appendChild(_text);
</script>
和
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Form.AllKeys.Length > 0)
{
string keys = string.Join(", ", Request.Form.AllKeys);
Label1.Text = string.Format("Found {0} keys: {1}", Request.Form.AllKeys.Length, keys);
}
else
{
Label1.Text = "Form.AllKeys.Length == 0";
}
}
当我运行它然后单击按钮时,标签显示:
Found 6 keys: __VIEWSTATE, __EVENTVALIDATION, txtAsName0, txtAsName1, txtAsName2, ctl00$MainContent$ctl00
我正在使用IE8。
查看生成的页面 html。可能存在从服务器生成不正确的 html 标记的可能性。即,某些 HTML 标签未使用关闭标签正确关闭。
相关文章:
- Recaptcha在IE7和IE8中不起作用
- 在IE8中不起作用的元素上触发单击事件
- 数据-在IE8中不起作用
- getComputedStyle替换:currentStyle(IE8/7)不起作用
- IE8 jquery ajax头请求不起作用
- 显示隐藏的html表在javascript(IE8)中不起作用
- ScriptX 打印功能在 IE8 中不起作用
- Angularjs 跨源资源共享 (CORS) 发布或放置方法在 IE8 和 IE9 中不起作用
- ExtJs 5.0:forEach on Array of Objects在IE8中不起作用
- 将JSON对象转换为敲除observable在IE8中不起作用,但在所有其他浏览器中都起作用
- 聚焦函数在ie8中不起作用
- 启动网格在IE8中不起作用
- Svg标签在IE8中不起作用
- Twitter引导程序示例在IE8中不起作用
- 引导程序3在IE8中不起作用(已检查其他答案)
- IE8的Javascript占位符不起作用
- Javascript中的开关案例在IE8中不起作用
- 如果我添加 pageX 页面 Y 在 IE8 中不起作用<!文档类型 html>.
- $.getScript 不起作用 (IE8)
- 点击事件不起作用IE8