3

jQueryを使用してフォームを送信しようとしていますが、これを機能させることができないため、小さなものが不足している必要があります。すべてのことから、問題なく機能するはずです。

これの何が問題になっていますか?

<table class="newrecord"><form id="editthis" action="page.php" method="post">       

    <tr><td class="left">Name:</td><td><input type="text" name="name" id="name" /></td></tr>
    <tr><td class="left">Company:</td><td><input type="text" name="company" /></td></tr>
    <tr><td class="left"><a href="?action=browse">Cancel</a></td><td><input type="button" name="submit" class="subbut" id="subthis" value="Update" /></td></tr>

</form></table>

そしてjavascript:

    $("#subthis").click(function() {
        $('#editthis').submit(); // An alert box works, so I know this is triggering
    });

コードに記載されているように、送信ボタンをクリックするとアラートボックスが機能しますが、jQuery送信機能を使用しても何も起こりません。私は何が欠けていますか?

4

2 に答える 2

5

フォームを送信するためにjQueryを使用する必要はありません。送信ボタンが属するフォームを送信するのは、デフォルトの動作です。

また、レイアウトにテーブルを使用しないでください。フォーム要素自体はうまくレイアウトできます。

<form id="edit_this" action="page.php" method="POST">
    <label>Name <input type="text" name="name"></label>
    <label>Company <input type="text" name="company"></label>
    <a href="?action=browse">Cancel</a>
    <button type="submit">Update</button>
</form>

簡単にレイアウトでき、単独で送信できます。

jQueryを使用して送信する前に何かを行う必要がある場合onsubmitは、ボタンを実際にクリックするのではなく、フォームのハンドラーにバインドします。


実際の問題は、ボタンに付けた名前とJavaScriptの予約語の衝突です。submit名前として使用しないでください。

于 2012-05-18T21:32:55.407 に答える
4

2 つの問題が考えられます。

1)formタグ内にtableタグがあります。これはおそらく問題の根本的な原因ではありませんが、有効な HTML ではありません。

name2)送信ボタンとして「送信」を使用しました。オブジェクトが JavaScript の予約語と衝突するため、これは避ける必要があります。id属性で行ったように、「送信」以外のものを使用してください。

于 2012-05-18T21:37:50.500 に答える