На моем сайте в моем представлении ASP.NET MVC созданы два флажка:
Html.RadioButton("check", "true", "true" == (string) ViewData["someKey"], new { id = "check1"});
Html.RadioButton("check", "false", "false" == (string) ViewData["someKey"], new { id = "check2"});
Я уверен, что ViewData ["someKey"] содержит значение "true".
В моей функции инициализации JS я выполняю следующую проверку:
alert($('#check1').is(':checked') + " " + $('#check2').is(':checked'));
В Firefox (и только Firefox) мое диалоговое окно с предупреждением покажет следующее (оно работает, как и ожидалось, в любом другом браузере):
Initial page load: true false
Normal refresh via Ctrl + R: false false
Refresh skipping cache via Ctrl + Shift + R: true false
Я пробовал много разных способов просмотра значения флажка, включая $('#check1').attr('checked')
, но безуспешно. Если я изучу HTML в Firebug, я увижу, что первый переключатель имеет свойство checked="checked"
.
Почему значение флажка меняется в FF при обновлении, и как я могу смягчить это? Так как это, похоже, ошибка только для FF, как я могу изменить свой код, чтобы он работал?
Этот вопрос SO , казалось, задавал нечто подобное, но ни одно из предложенных решений, похоже, не работает в этом случае.
Редактировать : Я также должен отметить, что когда переключатель отображается после обновления в FF, он на самом деле не отображается как проверено, несмотря на то, что говорит HTML я.
Edit2 : добавление необработанного HTML согласно запросу
<input id="check1" type="radio" value="True" name="check" checked="checked"/>
<input id="check2" type="radio" value="False" name="check"/>