我有这部分代码:
function createDownload() {
var category, format, specification, download;
$('#submitform').click(function() {
category = $('#cate').val();
format = $('#form').val();
specification = $('#spec').val();
if (category == "NULL" || format == "NULL" || specification == "NULL") {
alert("Please select all options.");
return false;
} else {
download = "pdfs/"+specification+format+category+".pdf";
window.open(download);
}
});
}
现在......在Internet Explorer中,它说“页面上有错误” - Message: 'return' statement outside of function
,我必须再次点击该按钮。
在Firefox,Chrome和Safari中 - 我必须单击两次按钮才能显示PDF ...(并且没有错误)......
现在为什么会这样?!
根据要求 - 我的表格声明:
<form method="post" action="javascript: return false;" onSubmit="createDownload();">
答案 0 :(得分:2)
<form method="post" action="javascript: return false;" onSubmit="createDownload();">
由于您在函数中使用return false,因此抛出错误。你将不得不把它放在任何一个函数中。
像
这样的东西<form method="post" action="javascript: function() {return false;}" onSubmit="createDownload();">
将起作用
最好将事件.submit()
绑定到表单
<form method="post" id="frm1"></form>
$("#frm1").submit(function(){
// your code
return false;
});
答案 1 :(得分:1)
您需要更改action='javascript: return false;'
并删除onsubmit
。它应该成为action='javascript: createDownload();'
答案 2 :(得分:0)
尝试删除退货。看起来你甚至不需要它,如果这确实是问题的原因那么保持它的重点是什么?
答案 3 :(得分:0)
首先,您需要从表单中删除action
- 这里没有任何意义。此外,假设#submitForm
引用表单提交按钮,您的第一次单击将附加单击处理程序,第二次单击将实际调用它。相反,删除onsubmit属性并以通常的方式将处理程序附加到按钮单击或表单提交事件,确保在任何一种情况下取消事件:
jQuery(function($) {
$('#submitform').click(function() {
// or: $('#formID').submit(function() {
var category, format, specification, download;
category = $('#cate').val();
format = $('#form').val();
specification = $('#spec').val();
if (category == "NULL" || format == "NULL" || specification == "NULL") {
alert("Please select all options.");
} else {
download = "pdfs/"+specification+format+category+".pdf";
window.open(download);
}
return false;
});
});