为什么我的表单没有发布jQuery .submit()?

时间:2013-02-07 18:06:40

标签: javascript jquery jquery-ui

我正在开发一个系统,允许用户将图书添加到他们的图书馆。我正在使用jquery UI对话框,并使用此脚本的前半部分将大约20行插入到数据库中。

然而,正如我在下半部分突然添加的帖子信息没有显示在已发布的页面上,我完全迷失了原因。

这应该是一个快速的补充,变成了头痛。

FORM:

<form id="addbookform" action="../models/Books/addBook_submit.cfm" method="POST">
<div style="display: none;" id="addBook" title="Add a Book to Your Library">
    <input type="hidden" id="InputType" name="InputType" value="Add"/>
    <input type="hidden" id="bookempID" name="bookempID"/>

    <label class="labelstyle" >ISBN:</label>
    <input type="text" maxlength="17" id="ISBN" name="ISBN">

    <label class="labelstyle" >Title:</label>
    <input type="text" maxlength="100" size="50" id="Title" name="Title">*

    <label class="labelstyle">Author's First Name:    </label>
    <input type="text" maxlength="50" id="AFName" name="AFName">

    <label class="labelstyle">Author's Middle Name:</label>
    <input type="text" maxlength="50" id="AMName" name="AMName">

    <label class="labelstyle">Author's Last Name:</label>
    <input type="text" maxlength="50" id="ALName" name="ALName">*

    <label class="labelstyle">Date Read:</label>
    <input type="text" id="DateRead" name="DateRead">
</div>
</form>

使用Javascript:

function addBook() {
  $("#addBook").dialog({
    autoOpen: true,
    width: ($(document).width()*.55),
    height: ($(document).height()*.7),
    modal: true,
    buttons: {
              "Add Book": function() {
                          //checkBook();
                          $('#addbookform').submit();
                          },
              Cancel: function() { $(this).dialog("close"); }
    }
  });
}

在我开始构建checkBook()之前,上面的内容正在运行。但是,现在它已经不再有效了。

编辑:

表格由以下人员发起: <input type="button" class="buttonstyle" value="Add Book" onclick="addBook()" /> (这有效)

2 个答案:

答案 0 :(得分:1)

我认为您的表单必须“可见”才能发布元素。无论css显示类型如何,jQuery当然可以查看和访问所有元素,但我相信“提交”操作需要显示发布到服务器的元素。我注意到你试图提交的所有表单元素都在一个DIV元素中,其css属性为Display:none;

答案 1 :(得分:0)

在我看来,您正在将提交事件绑定到代码中其他位置的表单。

因此,您可以尝试在没有jQuery的情况下提交表单。

$('#addbookform')[0].submit();

或取消绑定可能在表单中的任何事件。

$('#addbookform').off().submit();