0

特定の問題に対処できるように、私が望むものに十分近いものを見つけることができなかったので、ここに行きます:

ページの読み込み後に 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);

これは、選択データを置き換えてその前にフォームを追加することで機能しますが、子オプション要素を提供せず、代わりに空の選択フィールドを残します。

何か案は?

4

1 に答える 1

0

.attr()と一緒に.wrap ()を使用することができます- onchange 値を変更するために / jQuery っぽいソロションのために.change()イベントハンドラーを使用して

$('#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"/>');

デモ:フィドル

于 2013-07-03T08:34:43.587 に答える