启用javascript的按钮在IE中未正确发布
我遇到了IE9的问题,当单击一个最初被禁用并通过javascript重新启用的按钮时,它没有执行我需要的操作 我有一个表单(用PerlCGI构建),它有几个按钮。这些都在实际的html中被禁用,并且在表单完全加载时被启用。这样做是为了避免用户在页面完全加载之前保存页面 在所有浏览器中,按钮最初显示为禁用状态,并在页面完全加载时启用。也在IE中。 现在,这些重新启用的按钮在IE中单击时无法正常工作(使用IE9进行测试),但在firefox和chrome中,它们确实可以正常工作 IE开发者工具中出现的这些按钮之一的代码:启用javascript的按钮在IE中未正确发布,javascript,perl,internet-explorer,cgi,Javascript,Perl,Internet Explorer,Cgi,我遇到了IE9的问题,当单击一个最初被禁用并通过javascript重新启用的按钮时,它没有执行我需要的操作 我有一个表单(用PerlCGI构建),它有几个按钮。这些都在实际的html中被禁用,并且在表单完全加载时被启用。这样做是为了避免用户在页面完全加载之前保存页面 在所有浏览器中,按钮最初显示为禁用状态,并在页面完全加载时启用。也在IE中。 现在,这些重新启用的按钮在IE中单击时无法正常工作(使用IE9进行测试),但在firefox和chrome中,它们确实可以正常工作 IE开发者工具中出现
<input name="Event_Action" id="syncStream" type="submit" value="Create Sync Stream"/>
通过body标签的onload事件启用按钮:
<body onload="enableButtons()">
<form method="post" action="/cgi-bin/pdf/pdf.pl?&pdf_id=1071&release=at7.1.0&pdf_patch_rel_phase=b" enctype="application/x-www-form-urlencoded" onsubmit="return validatePatchNr()" name="MYFORM">
javascript函数启用按钮:
function enableButtons()
{
var buttons = document.getElementsByName("Event_Action");
for (i=0;i<buttons.length;i++)
{
buttons[i].disabled=false;
}
}
功能启用按钮()
{
var buttons=document.getElementsByName(“事件\动作”);
对于(i=0;i您是否尝试使用每个按钮的不同名称?通常,某些浏览器不提交每个按钮的名称-值对,但某些浏览器会提交。我想您应该将每个按钮的名称更改为唯一,并使用隐藏字段来确定要执行的操作,而不是按钮值。点击F12,网络,捕获并查看browser sendsIf如果“怀疑”接收表单的Perl脚本中存在问题,则应对此进行测试。将接收到的字段打印到日志中,然后查看是否全部接收到。可能是缓存问题,即已知存在攻击性缓存。请尝试清除缓存,并查看这是否“解决”问题是.dan1111,我怀疑IE没有将所有字段发送到perl脚本,而不是perl脚本。正如我在下面的一条评论中提到的,这是一个已经使用了几年的现有脚本。直到最近,javascript才禁用并重新启用按钮。这样做是为了避免用户在使用时出现保存错误在页面完全加载之前按下按钮。如果我在初始HTML中重新启用按钮,页面将完全按照预期工作,因此javascript重新启用中的某些内容只会导致IE出现此问题。@mplungjan感谢您提供的提示。这确实是我要找的。我正在尝试调试IE现在所做的帖子。第一个很少有测试显示,有时参数“Event_Action”在帖子中出现不止一次。这可能是问题的原因。如果我有一个更改,我将返回以正确地测试此怀疑。我确信名称不是问题的原因。此应用程序是一些已经使用了5年以上的遗留代码。我们所做的唯一更改是我们最近做的是禁用按钮,直到页面完全加载。按钮的名称没有更改。我将此标记为答案,因为我最终发现具有相同名称属性和值“Event_Action”的标记是我问题的根本原因。显然IE也会发布标记,而其他浏览器不会。我会我还要感谢mplungjan和ShadowWizard的评论,他们的评论引导我找到了解决方案。
function enableButtons()
{
var buttons = document.getElementsByName("Event_Action");
for (i=0;i<buttons.length;i++)
{
buttons[i].disabled=false;
}
}