jQuery Clone()在asp.net页面中表现不佳

时间:2013-09-11 09:54:02

标签: javascript jquery asp.net clone

我有一个搜索框,需要在表单中,以便它可以发布到另一个页面以使搜索功能正常工作。 我最初使用iFrame在Firefox中运行良好,但使用搜索框只会刷新使用Internet Explorer的时间。

我发现如果我只是在当前版本下面创建另一个表单,它工作正常,但这显然会将它留在页面上的错误位置。

我试图使用我在网站上其他地方成功使用的jQuery clone()方法,但这是拒绝工作的。

我环顾四周,找到了另一种使用clone()方法的方法,我在jsfiddle中正常工作,但它在我的网站上无效。

这是我想要填充的div:

 <div id="CustomerSearch">
 2
 </div>

这就是我想要克隆的div:

 <form name="frmCustomerList" action="../CustomerList/default.asp" method="post">
      <div id="CustomerSearchClone"> 
          1
    Customer Search: <br />
        <input type="text"id="txtSearch" name="txtSearch" class="Searchbox" />
         <input type="submit" value="View" name="txtSearchSubmit" />
    </div>
           </form>

这是我在外部文件中使用的脚本:

var CustomerSearch = jQuery('#CustomerSearch');
var CustomerSearchClone = jQuery('#CustomerSearchClone');

CustomerSearch.html(CustomerSearchClone.clone(true));

我在JSFiddle工作:http://jsfiddle.net/de9kc/92/

有什么想法吗?

谢谢你们

1 个答案:

答案 0 :(得分:0)

我不是.NET的人,但你粘贴的div仍然在表单标签内,所以我不确定这会不会在提交时(或回发,或者其他)引起.NET的打嗝)。

但是,根据您在问题中展示的布局,将克隆的表单元素放在您想要的位置;

我修改了预结果html,如下所示:

//html
<form id="form1" runat="server">
    <div id="CustomerSearch">2 Customer Search:</div>
</form>

<form name="frmCustomerList" action="../CustomerList/default.asp" method="post">
    <div id="CustomerSearchClone">1 Customer Search:
        <br />
        <input type="text" id="txtSearch" name="txtSearch" class="Searchbox" />
        <input type="submit" value="View" name="txtSearchSubmit" />
    </div>
</form>

然后我使用了这个jQuery:

// the vars you already created
var CustomerSearch = jQuery('#CustomerSearch');
var CustomerSearchClone = jQuery('#CustomerSearchClone');

// using .clone(true, true) for deepWithDataAndEvents - not sure if you want this?
// will the .clone(true, true) retain input's link to original form id? I'm uncertain 
// using .children() because clone's intended destination already has a div container
CustomerSearchClone.children().clone(true, true).appendTo(CustomerSearch);

// hide clone's source after cloning; no sense in having both search boxes visible
CustomerSearchClone.hide();

注意:使用.clone()具有生成具有重复id属性的元素的副作用,这些属性应该是唯一的。 (按http://api.jquery.com/clone/

但是您将克隆的元素附加到不同的表单标记中,因此可能不是问题。

我自己只是在学习jQuery,但我想我会给解决方案一个机会; - $

JSFiddle:http://jsfiddle.net/de9kc/190/