2012-04-12 48 views
1

我想为我自己的CMS构建一个自定义窗体系统现在这个工作大部分我有一个“标准”文本的窗体,我有Textarea ,输入文本和这些所有的工作,建立自定义窗体和Javascript/jQuery不会影响某些元素

我使用jQueryUI可排序,以允许用户从左侧的工具提示拖动到右边,当元素被抛弃时,它将其返回到工具提示,然后复制模板元素这一切完美的作品现在拿到订单发送给我使用了一个名字替换系统中的服务器,

EG

下拉模板使用的,

<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> 

只是submiting形式之前我有更换名字在这里有序的形式,一些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; 
} 

现在,正如我所说的上面的代码适用于“标准”文本,文本字段,文件字段,文本区,密码和提交/重置按钮,

它只是下拉菜单和组选择不起作用的更奇怪的事情是窗口。计数递增,所以如果我把

下拉到形式, 组到表单中, 标准文本到形式,

%itemid%改为3的标准文本,但下拉列表和群组仍然说%itemid%什么我发现奇怪的是,使用.replace(//,window.count)通常应该导致%itemid%更改为undefined但这不会发生真正奇怪的事情是我已将一个console.log($(this))添加到buildOrder函数。每个选择和它是选择元素TS它只是不更换有名字

回答

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

应该%的itemid%代替%itmid%我认为

+0

Arrr再次血腥感谢打字错误! – 2012-04-12 14:45:45