1

私は、ユーザーが自分の図書館に本を追加できるシステムに取り組んでいます。jquery UIダイアログボックスを使用しており、このスクリプトの前半を使用してデータベースに約20行を挿入しました。

ところが、後半に追加していたので、いきなり投稿情報が投稿ページに表示されなくなり、理由がわからなくなってしまいました。

これは、頭痛の種に変わった迅速な追加であるはずでした。

形:

<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()" /> これは機能します)

4

2 に答える 2

1

要素を投稿するには、フォームが「表示」されている必要があると思います。jQueryは、cssの表示タイプに関係なく、すべての要素を確実に表示してアクセスできますが、「送信」アクションでは、サーバーに投稿される要素が表示される必要があると思います。送信しようとしているすべてのフォーム要素が、Display:noneのcssプロパティを持つDIV要素内にあることに気付きました。

于 2013-02-07T18:43:36.437 に答える
0

コード内の別の場所にあるフォームに送信イベントをバインドしているように見えます。

したがって、jQueryなしでフォームを送信してみることができます。

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

または、フォームに含まれている可能性のあるイベントのバインドを解除します。

$('#addbookform').off().submit();
于 2013-02-07T18:32:15.057 に答える