3

PHPで生成された入力フィールドがたくさんあります。jQuery で新しいフィールドを追加すると、空の場合は送信されません。ただし、静的なものは空であっても送信されます。

どうすれば修正できますか?

コード:

<form id="sendform" action="pdf.php" method="post">
<input type="text" name="to1" />
<input type="text" name="to2" />
<input type="text" name="to3" />
<input type="submit" value="send" />
</form>

jQueryの部分は次のとおりです。

var clone = $('input[name="to2"]').clone();
$(clone).attr('name', 'to4');
$('#sendform').append(clone);

スクリーンショット: これは私がDOMインスペクターを通して見るものです これは、送信時にヘッダーに表示されるものです

Note1、Note2、Note3、Note4 があることがわかります。Note2 を動的に追加しました。スクリーンショットから、それがdomにあることがわかりますが、送信されていません(はい、データが入力されています)。

解決策 結論として、問題はtable( <table><form>) 内に配置された要素。いつtable( ) の親になりました<form><table>- すべて正常に動作します。

4

2 に答える 2

4

誰かが再び同じ問題に直面した場合 - 理由は非常に単純です: 不正な DOM です。これにより、視覚的なレンダリングが正しくなる可能性がありますが、送信時にフォーム入力が正しく処理されません

fe をお持ちの場合:

[form]
    [div]

    [div]
  [div] <!-- redundant closing div -->
[/form]

新しく追加されたフォーム フィールドは送信されない場合があります。Firefox でページのソースを確認してください - 赤いヒントのタグが役立つ場合があります

于 2014-01-09T15:56:18.167 に答える
2

期待どおりに正常に動作します:

var clone = $('input[name="to2"]').clone();
$(clone).attr('name', 'to4');
$('#sendform').append(clone);

$('#sendform').submit(function() {
    $('div').text($(this).serialize());
    return false;
});​

ライブデモ

于 2012-07-01T23:25:12.503 に答える