私は自分の CMS 用にカスタム フォームのシステムを構築しようとしていますが、これはほとんどの場合機能します。フォームには "std" テキストがあり、Textarea、入力テキストがあり、これらはすべて機能します。
私は jQueryUI sortable を使用して、ユーザーが左側のツールチップから rightPain にドラッグできるようにしています。要素がドロップされると、ツールチップに戻り、テンプレート要素がコピーされます。これはすべて完全に機能し、注文が送信されます私が使用したサーバーは、ネームシステムの置き換え、
例えば
ドロップダウン テンプレートの使用は、
<div id="dropdown" class="item">
<div class="title">Dropdown Field</div>
<div class="container">
<div class="error" style="display:none;">There are error in this element</div>
<input class="type" type="hidden" name="items[%itemid%][type]" value="group" />
Label : <br />
<input type="text" class="label" name="items[%itemid%][label]" value="<?php echo $this->currentItem["label"]; ?>" /><br />
Options :<br />
<textarea name="items[%itemid%][options]" class="text_area"><?php echo $this->currentItem["options"]; ?></textarea>
<div class="delete">
<img src="<?php $this->getImagePath() ?>/delete.png" title="delete item" alt="a Rex X" />
<span class="comment">Delete this Item</span>
</div>
</div>
</div>
フォームを送信する直前に、名前を順序付けられたフォームに置き換えるjQueryコードがあります。ここにそのコードがあります。
function buildOrder(){
window.count = 0;
$(".rightPain > div.item").each(function(){
window.count++;
var currentItem = $(this);
$("input, select, textarea", $(currentItem)).each(function() {
$(this).attr('name', $(this).attr('name').replace('%itmid%', window.count));
});
});
delete window.count;
}
上記のコードは、「std」テキスト、テキスト フィールド、ファイル フィールド、テキストエリア、パスワード、送信/リセット ボタンで動作すると言ったように、
それはドロップダウンのみであり、さらに奇妙なことは、window.countがインクリメントされるということです。
フォームへのドロップダウン、フォームへのグループ化、フォームへの標準テキスト、
はStd Text で に%itemid%
変更されましたが、ドロップダウンとグループはまだ奇妙だと言っていますが、 を使用すると、通常はtoまたは toに変更されるはずですが、これは起こりません。本当に奇妙なことは、buildOrder に a を追加したことです。 functions .each select 要素を選択しているだけで、そこの名前を置き換えていません3
%itemid%
.replace(//,window.count)
%itemid%
undefined
console.log($(this))