2 つのドロップダウンがあるテーブルがあります。最初のドロップダウンから値を選択すると、2 番目のドロップダウンの値が表示されます。
このためonchange
に、最初のドロップダウンのイベントで呼び出される次の関数を作成しました。
function dataTypeChanged(selectedValue){
document.getElementById("nodeInputValidation").innerHTML = "";
var rows = $('table.intValidationTable tr');
rows.filter('.rangeTR').css("visibility", "collapse");
rows.filter('.listTR').css("visibility", "collapse");
rows.filter('.textListTR').css("visibility", "collapse");
rows.filter('.dateRangeTR').css("visibility", "collapse");
rows.filter('.dateListTR').css("visibility", "collapse");
var validationTypes = document.getElementById("validationType").options;
document.getElementById("validationType").value = "";
var datatype;
for(var i=0;i<validationTypes.length;i++)
{
datatype = validationTypes[i].value.substring(0,validationTypes[i].value.indexOf("_"));
if(datatype != selectedValue){
$("#validationType option[value=" + validationTypes[i].value + "]").hide();
}else{
$("#validationType option[value=" + validationTypes[i].value + "]").show();
}
}
}
この関数は Firefox で問題なく動作します。しかし、どういうわけかIE 8.0では機能しません。
編集: 以前は、これが原因である可能性があると考えていました。しかし、そうではありません。
var rows = $('table.intValidationTable tr');
rows.filter('.rangeTR').css("visibility", "collapse");
rows.filter('.listTR').css("visibility", "collapse");
rows.filter('.textListTR').css("visibility", "collapse");
rows.filter('.dateRangeTR').css("visibility", "collapse");
rows.filter('.dateListTR').css("visibility", "collapse");
機能の別の部分のようです。2 番目のドロップダウンのオプションを表示/非表示にするコードが機能していません。現在、すべてのオプションが表示されています。
これで私を助けてくれませんか。
さらにコードが必要な場合はお知らせください。