【问题标题】:Form refuses to submit via jQuery表单拒绝通过 jQuery 提交
【发布时间】:2010-02-24 21:40:06
【问题描述】:

我有以下表格

<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() 正在运行,我知道这一点是因为我在 .click() 中调用了 alert() 并出现了一个警告框。

通过运行以下命令,我可以看到我的表单的 .submit() 在其他任何地方都没有被覆盖:

var submitEvents = $('#myForm').data("events").submit;
jQuery.each(submitEvents, function(key, value) {
  alert(value);
});

另外,我没有收到任何 Javascript 错误。

以及为什么单击预览(显然)什么都不做的想法?

【问题讨论】:

  • 你有没有使用 FireBug 之类的东西单步执行 JS 代码,看看那里是否出现了什么?
  • 我可能用错了 FireBug,但单步执行 Javascript 并没有给我任何线索。

标签: jquery forms form-submit


【解决方案1】:

原来有一个&lt;input&gt; 按钮,id = 'submit'。 jQuery 不喜欢这样。

【讨论】:

  • 作为参考,我在使用名为“submit”的元素和不同的 ID 时遇到了同样的问题。
【解决方案2】:

也许是吹毛求疵,但是:

$('#myForm').append($('<input id=\"previewAction\" name="previewAction" type=\"hidden\" />'));

你为什么要转义" 并且不要在同一行转义"?你没把"改写成'忘了转义吗?

另外,form 上的 target 对我来说是新事物 :)

编辑:

也许html 或其他javascript 可以给你/我们一些线索——否则我和你一样迷茫。

【讨论】:

  • 哦,好点。奇怪的是,它并没有为另一种形式搞砸任何事情。没有斜线没有区别。
【解决方案3】:

尝试使用不带 $() 的 append 方法,如下所示:

$('#myForm').append('<input id=\"previewAction\" name="previewAction" type=\"hidden\" />');

另外,您可以将 Firebug 插件添加到 firefox,它是调试 javascript 的绝佳工具。 https://addons.mozilla.org/en-US/firefox/collection/firebug_addons

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多