我有一排按钮,它们都创建了一个pdf文件,我想在新标签页中打开它。 这样,按钮页面保持在顶部,pdf打开以进行打印。为防止单击按钮两次,我禁用按钮,就像这样(我使用python):
<input type='submit' value='Factureren' name='submitbutton' id='%s'
onclick="javascript:document.getElementById('%s').disabled=true;
document.getElementById('%s').className='button_disabled';"> % ((but_id,) *3)
在FF3中,这工作正常,即表单已提交,脚本已执行,然后按钮禁用。在IE中按钮只是禁用,但表单脚本不会被执行。
这个IE问题有解决方案吗?
答案 0 :(得分:8)
很简单:禁用的提交按钮不会在IE中提交表单。考虑重构您的代码:
答案 1 :(得分:5)
这样做更容易:
<input type='submit' value='Factureren' name='submitbutton' id='%s'
onclick="this.disabled=true; this.className='button_disabled';"> % ((but_id,) *3)
我不知道这是否能解决你的问题,但这就是我在这样的情况下会做的事情。无论如何,我认为你不需要“javascript:”。
答案 2 :(得分:3)
您可以尝试使用普通按钮并在onclick事件中触发表单submit()函数:
<input type="button" value="Factureren" name="submitbutton"
onclick="this.disabled=true; this.className='button_disabled'; this.form.submit();">
答案 3 :(得分:0)
也许尝试将处理程序附加到表单的onsubmit事件而不是单击按钮?如果用户按下ENTER而不是单击按钮,那么这也可以工作。
答案 4 :(得分:0)
为什么不控制实际的提交按钮而不是控制div?这在我测试的所有浏览器(IE6 + FF1 +和Safari)
中普遍适用function toggleSubmit(){
frm=document.forms[0]
if(frm.submit.disabled==true){
frm.submit.disabled=false;
}else{
frm.submit.disabled=true;
}
}
然后在按钮上你需要调用的是
<input type='submit' value='Factureren' name='submitbutton'
onclick="toggleSubmit();false;"> % ((but_id,) *3)
答案 5 :(得分:0)
<input type="submit" value="Factureren" name="submitbutton' id="%s"
onclick="this.disabled = true; this.className = 'button_disabled'; true;">
% ((but_id,) *3)
您可以使用此代替 document.getElementById('%s')。此外,您需要返回 true 才能传递onclick事件。
您还可以在表单的onsubmit处理程序中禁用该按钮。这可能更加万无一失。
另外,如果你没有特别使用类来禁用按钮,那就太好了。 CSS选择器旨在为您选择禁用的按钮。
答案 6 :(得分:0)
看看这部分:
onclick="javascript:document.getElementById('%s').disabled=true;
document.getElementById('%s').className='button_disabled';"
“javascript:”是不必要和错误的。
onclick="document.getElementById('%s').disabled=true;
document.getElementById('%s').className='button_disabled';"
“javascript:”是链接中使用的URL“协议”,而不是onclick操作。
此外,尝试告诉表单提交。我认为这是正确的:
onclick="document.getElementById('%s').disabled=true;
document.getElementById('%s').className='button_disabled';
this.form.submit();"
答案 7 :(得分:0)
onclick =“this.disabled ='disabled'; this.form.submit();”对我来说很完美