IE中的jquery clone方法擦除了选择选项

时间:2012-09-28 11:46:59

标签: jquery internet-explorer clone

我有以下代码: -

//-- function to enable editing of content if disabled for new records --\\
function edit(e,elems)
{
  if ( e.value == "new" )
  {
    $(e).parent().parent().find(":input[readonly]").each(function(index) {
      $(this).prop('readonly',false);
      $(this).addClass('highlight');
    });
      $(e).parent().parent().find("select[disabled]").each(function(index) {
      $(this).prop('disabled',false);
      $(this).addClass('highlight');
//-- Insert dynamic options --\\
      if ($(this).attr('name') == 'low')
      {
        var optVal = "option[value='" + $(this).val() + "']";
        var optclone = $("#affoptions").clone();
        $(optclone).find(optVal).attr("selected",true);
        $(this).html($(optclone).find("option"));
      }
      if ($(this).attr('name') == 'high')
      {
        var optVal = "option[value='" + $(this).val() + "']";
        optclone = $("#insoptions").clone();
        $(optclone).find(optVal).attr("selected",true);
        $(this).html($(optclone).find("option"));
      }
    });
    $(e).parent().parent().find(elems).focus();
  } else {
      $(e).parent().parent().find(elems).each(function(index) {
      if ( $(this).is('select') )
      {
        $(this).prop('disabled',true);
      } else {
        $(this).prop('readonly',true);
      }
      $(this).removeClass('highlight');
    });
  }
}

在Google Chrome中可以正常使用,但在IE 8中不起作用。 基本上我有一个带单选按钮的表单,其中一个用于新条目。这基本上启用了输入文本字段并删除了选择字段的禁用标志。 禁用时,选择选项中只有1个值。单选按钮插入隐藏div中的所有可用选项,并在新选项中标记所选索引值以匹配初始加载中的单个条目。

在IE中,完全消除了选择选项,甚至没有留下任何内容。

我无法使其正常工作并假设克隆元素存在问题。

我做错了什么?

由于 克雷格

1 个答案:

答案 0 :(得分:0)

没关系,我最终弄明白了。 我的代码很好,问题是IE不喜欢这个事实,我隐藏的DIV与我克隆的选项,缺少SELECT标签。去图。

所以改变这个: -

<div id="affoptions" class="options">
  <option value="0001">0001 | A</option>
  <option value="0002">0002 | B</option>
  <option value="*">* | All</option>
  <option value="0003">0003 | C</option>
  <option value="0004">0004 | D</option>
</div>

对此: -

<div id="affoptions" class="options">
 <select>
  <option value="0001">0001 | A</option>
  <option value="0002">0002 | B</option>
  <option value="*">* | All</option>
  <option value="0003">0003 | C</option>
  <option value="0004">0004 | D</option>
 </select>
</div>

解决了它。

干杯 克雷格