我有以下表格
<form name="myForm" id="myForm" method="post" enctype="multipart/form-data" action="script.php">
和这个jQuery
$(document).ready(function() {
$('#previewButton').click(function() {
// Change form's target to be in a new window.
$('#myForm').attr('target', '_blank');
/*
* Create a hidden input field and add it to the form to designate that the
* action the form is performing is a preview action.
*/
$('#myForm').append($('<input id=\"previewAction\" name="previewAction" type=\"hidden\" />'));
// Submit the form.
$('#myForm').submit();
// Change the form's target to be the current page again.
$('#myForm').attr('target', '');
/*
* Remove the hidden input field we just added so that the form can submit
* normally.
*/
$('#previewAction').remove();
return false;
});
});
我在两个不同的页面上有完全相同的两个代码。在其中一个,当我单击我的预览链接时,表单提交到一个新的空白窗口。在另一页上,表单未提交,单击“预览”时不会打开任何窗口。
.click()IS正在运行,我知道这是因为我在.click()中调用了alert(),并且出现了警告框。
从运行以下内容,我可以看到我的表单的.submit()在其他任何地方都没有被覆盖:
var submitEvents = $('#myForm').data("events").submit;
jQuery.each(submitEvents, function(key, value) {
alert(value);
});
此外,我没有Javascript错误。
为什么单击预览(显然)没有做任何事情的想法?
答案 0 :(得分:6)
原来有一个<input>
按钮,其中id ='submit'。 jQuery不喜欢这个。
答案 1 :(得分:0)
可能是挑剔,但是:
$('#myForm').append($('<input id=\"previewAction\" name="previewAction" type=\"hidden\" />'));
为什么你在同一条线上逃离"
并且不逃脱"
?你有没有重写"
到'
而忘记逃避?
另外,target
form
对我来说是新鲜事:)
修改强>
也许html
或其他javascript
可能会给你/我们一些线索 - 否则我会像你一样迷失。
答案 2 :(得分:0)
尝试使用不带$()的append方法,如下所示:
$('#myForm').append('<input id=\"previewAction\" name="previewAction" type=\"hidden\" />');
另一件事,你可以将Firebug插件添加到firefox,它是调试javascript的一个很棒的工具。 https://addons.mozilla.org/en-US/firefox/collection/firebug_addons