ここでいくつかの質問に対する回答を既に見つけたので、誰かが次の質問に対する回答を持っていると確信しています。
Ajax を介して選択ボックスの更新をプログラムしました。Internet Explorer 8 以降、Opera、Firefox ではすべて正常に動作します。しかし、開発ツール (F12) で Internet Explorer 7 または Quirks を選択すると、正しく動作しません。行に 3 つの選択フィールドがあります。最後の 2 つは、最初の 1 つが選択された後に入力されます。これは機能します。
今問題:複数の選択を可能にするために、完全な行が複製され、後で追加されます。最初の行では機能しますが、その後は機能しません。
2 番目と 3 番目の選択を更新する必要がある場合、最初の OPTION エントリのみが更新され、選択フィールドはプルダウンされないため、バグがあるようです..... 問題のあるプルダウンに正しい HTML コンテンツがあるかどうかを確認しましたそして、取得した HTML コンテンツはjquery $().html()
、関数が選択フィールドを更新した後に必要なものとまったく同じです。
<div id="diagrammpreview" style="height:500px;width:500px;"></div>
<div id="d1">
<div id="diagramm1">
<select size="1" class="overviewtables" name="overviewtables"><option value="error">Bitte auswaehlen</option></select>
<select size="1" class="axis" name="axis1"><option value="error">Zuerst Tabelle auswaehlen</option></select>
<select size="1" class="axis" name="axis2"><option value="error">Zuerst Tabelle auswaehlen</option></select>
<input type="button" id="preview1" class="preview" name="preview1" value="Preview">
</div>
これは複製される部分です:
$('#adddiagramm').click(function(){$('#d1').children().last().after($('#diagramm1').clone())
function fillpulldown(val,text,j_pulldown,a)
{
var newcontent="<option value=\"error\">"+"Bitte auswaehlen"+"</option>";
for(i=0;i<=(val.length-1);i++)
{
if(val[i]=="timestamp"){}
else
{
newcontent=newcontent+ "<option value=\""+val[i]+"\">"+text[i]+"</option>";
}
}
alert(newcontent);
j_pulldown.html(newcontent);
alert(j_pulldown.parent().html());
alert(j.pulldown.html());
}
この関数は、プルダウン メニューを埋めます。動作しますが、IE7 はその部分を正しく解析していないようですj_pulldown.html(newcontent)
。問題は CLONED コンテンツのみにあります。