构建自定义表单和 Javascript/jQuery 不会影响某些元素


Building a Custom forms and Javascript/jQuery wont affect certain elements

我正在尝试为我自己的CMS构建自定义表单的系统,现在这在大多数情况下都有效,我有一个表单的"std"文本,我有文本区域,输入文本,这些都可以工作,

我正在使用可排序的jQueryUI来允许用户从左侧的工具提示拖动到右侧疼痛,当元素被丢弃时,它会将其返回到工具提示,然后复制模板元素,现在一切都可以完美地工作以获取发送到服务器的订单我使用了替换名称系统,

例如

下拉模板的使用,

<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 递增,所以如果我放一个

下拉列表到窗体, 分组到表单中, 标准文本进入表单,

%itemid%在 Std Text 上更改为 3,但下拉列表和组仍然说 %itemid% 我觉得奇怪的是,使用 .replace(//,window.count) 通常应该导致%itemid%更改为或更改为console.log($(this))但这并没有发生 真正奇怪的是我在buildOrder函数中添加了一个CC_8.每个选择,它正在选择它刚刚的元素不替换那里的名称

$(this).attr('name', $(this).attr('name').replace('%itmid%', window.count));

应该是 %itemid% 而不是 %itmid% 我假设