3

jQueryを使用してフォーム要素を追加しています。正しい値でページに正常に表示されますが、フォームを送信すると、データがPHPバックエンドに表示されません。FirebugのPOSTデータを確認しましたが、そこにも表示されません。フォーム要素を追加するために使用しているJavaScriptは次のとおりです。

$("#projectArray").append("<input type='text' name='data[Project][description]' value='"+projectDescription+"' id='test' />");

誰かがこのようなものに出くわしたことがありますか?他の投稿のようですが、タイプミスのようです。私が言えることから、この行にはタイプミスはありません。

編集:要求に応じて、ここにフォームコードがあります。かなり大きな形なので、たくさん切り抜いてみました。誰かが完全なコードが必要な場合は、貼り付けることができます。

<form action="/learningexperiences/add" id="LearningexperienceAddForm" method="post" accept-charset="utf-8">
    <div style="display:none;"><input type="hidden" name="_method" value="POST"/></div>
    <div class="input text"><tr><td><label for="LearningexperienceSubjectarea">Subject Area</label>&nbsp;&nbsp;</td><td><input name="data[Learningexperience][subjectarea]" maxlength="50" type="text" id="LearningexperienceSubjectarea"/></td></tr>
...
    <tr><td>Active</td><td><div class="cbx"><input type="hidden" name="data[Learningexperience][active]" id="LearningexperienceActive_" value="0"/><input type="checkbox" name="data[Learningexperience][active]"  checked="checked" value="1" id="LearningexperienceActive"/></div></td></tr>

    <tr><td colspan="2" style="vertical-align:middle;"><div id="projectArray"></div></td></tr>

...
    <input type="hidden" name="data[Learningexperience][id]" id="LearningexperienceId"/><tr><td colspan="2" style="vertical-align:middle;">&nbsp;</td></tr>

</table>

<table id="buttonsTable">
<tr><td style="text-align:right;"><div style="margin-right:5px;"><div class="submit"><input  name="cancel" type="submit" value="Cancel"/></div></div></td>
<td><div class="submit"><input  type="submit" value="Save Record"/></div></form></td></tr>
</table>

編集2:フォーム要素(#LearningexperienceAddForm)に追加するように追加タグを変更しました。理由はわかりませんが、その時点で機能し始めました。

4

6 に答える 6

4

同じ問題を抱えているときにこれに出くわしました。タグをすべての外側に配置する必要があると確信しています。

このようなもの:

<form>
<table>

[add as many dynamic fields as you want]

</table>
</form>

私の給与等級をはるかに超える理由で、これらのタグが順不同である場合、動的フィールドは投稿用に選択されません...

これにより、誰かが私にかかった2時間を節約できることを願っています:-)

于 2013-04-19T21:02:51.997 に答える
2

追加タグをフォーム要素に追加するように変更しました (#LearningexperienceAddForm)。理由はわかりませんが、その時点で機能し始めました。

于 2012-04-06T13:42:43.883 に答える
2

HTML 自体を追加する代わりに、要素を作成してから追加することをお勧めします

var input = document.createElement('input');
input.name = 'data[Project][description]';
input.type = 'text';
input.value = projectDescription;
input.id = 'test';
$('#projectArray').append(input);

これにより、アクセスのために DOM に挿入する作業が改善されます。

これがうまくいくかどうか教えてください。

于 2012-04-05T15:51:48.240 に答える