1

私は自分の 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%undefinedconsole.log($(this))

4

1 に答える 1