2013-07-03 15 views
0

无法找到任何足够接近我想要什么,我可以做的工作为我的具体问题所以这里有云:jQuery的 - 更换滤芯的代码,同时保持不变儿童

我有一个选择按钮,我需要更改页面加载后的onchange参数并在其之前添加表单元素。这里的HTML:

<select name="dnn$ctr2027$Fixture$ddlRounds" onchange="javascript:setTimeout('__doPostBack(\'dnn$ctr2027$Fixture$ddlRounds\',\'\')', 0)" id="dnn_ctr2027_Fixture_ddlRounds"><option value="">---All Rounds---</option> 
<option selected value="337"></option> 
<option value="353">Round 2</option> 
<option value="354">Round 3</option> 
<option value="338">Round 4</option> 
<option value="348">Round 5</option> 
etc 
etc..... 
</select> 

这里就是我已经成功地使其他答案为止拼凑片段,我发现:

var divToRemove = jQuery('#dnn_ctr2027_Fixture_ddlRounds'); 
var children = elToRemove.children().detach(); 
divToRemove.replaceWith('<form name="roundSelect" action="#tround" method="get"><select name="dnn$ctr2027$Fixture$ddlRounds" onchange="document.roundSelect.submit();" id="dnn_ctr2027_Fixture_ddlRounds">').append(children); 

这个作品在替代选择数据和添加形式它的前面,但它不给我孩子的选择元素,而是留给我一个空白的选择领域。

任何想法?

回答

0

您可以使用.wrap().attr()一起 - 使用.change()事件处理程序的一个jQuery十岁上下solotion改变平变化值/

$('#dnn_ctr2027_Fixture_ddlRounds').attr('onchange', 'document.roundSelect.submit();').wrap('<form name="roundSelect" action="#tround" method="get"/>'); 

或者更好

$('#dnn_ctr2027_Fixture_ddlRounds').change(function(){ 
    document.roundSelect.submit(); 
}).wrap('<form name="roundSelect" action="#tround" method="get"/>'); 

演示:Fiddle

+0

感谢Arun,这个解决方案为我工作,并给了我一些有价值的洞察Jquery :) –