2009-07-21 14 views
2

MVCフォームに2つのラジオボタンがあり、表の行を非表示にしたり表示したりできます。RadioButtonsでJQueryを使用して表の行を非表示/表示する

Firefoxではうまく動作しますが、IEでは正常に動作しません。 IEでは、最初のラジオボタンを選択したときにのみJQuery関数が起動されるようです。私はそれが最初に発火することを確認するために追加のラジオボタンを追加しました。

私のボタンをレンダリングする: <% = Html.RadioButton( "周波数"、 "毎日")%> デイリー

と <% = Html.RadioButton( "周波数"、「週刊 ")%> 週刊

My機能は次のとおりです。

$('table#ScheduleTable input#Frequency').addClass("FrequencyOption"); 
$('.FrequencyOption').change(function() { 
    if ($(this).attr('checked') == true & $(this).val() == "Daily") { 
     $('.recurEveryBox').children().show(); 
     $('.weekDayOption').children().hide(); 
    }; 
    if ($(this).attr('checked') == true & $(this).val() == "Weekly") { 
     $('.recurEveryBox').children().show(); 
     $('.weekDayOption').children().show(); 
    } 
}); 

答えて

0

jQueryコードを実行する前に、オブジェクトの長さを確認する必要がありました。これが最善の方法であるかどうかは分かりませんが、うまくいき、十分な時間を過ごしました! ;)

すべてのヘルプのためのThansk。

0

HTMLソースを見ることができれば助かります。

両方の入力にid="Frequency"がある可能性があります。 IDはページ上で一意である必要があります(つまり、ページ上の1つのアイテムのみがid="Frequency"を持つことができます)。私が見ることができるものから

$('input[name=Frequency]').change(function() { 
    if ($(this).attr('checked') == true) 
{ 
    if ($(this).val() == "Daily") { 
     $('.recurEveryBox').children().show(); 
     $('.weekDayOption').children().hide(); 
    } 
    if ($(this).val() == "Weekly") { 
     $('.recurEveryBox').children().show(); 
     $('.weekDayOption').children().show(); 
    } 
} 
}); 
1

は、あなたがこの参照メソッドを使用する場合は、この

$('table#ScheduleTable input[id^="Frequency"]').change(function() { 
    if ($(this).attr('checked') == true & $(this).val() == "Daily") { 
     $('.recurEveryBox').children().show(); 
     $('.weekDayOption').children().hide(); 
    }; 
    if ($(this).attr('checked') == true & $(this).val() == "Weekly") { 
     $('.recurEveryBox').children().show(); 
     $('.weekDayOption').children().show(); 
    } 
}); 
0

は多分試してみてください。同じIDを持つ2つのことが原因でエラーが発生する可能性があります。それが本当に起こっている場合は、それを排除してください。

0

、これはページ上の2つの<input type="radio" id="Frequency" />となります: