У меня проблема, когда я хочу запомнить отмеченный переключатель в диалоговом окне диалога jQuery UI.jQuery Dialog Setting Radio Checked Issue
Я столкнулся с каким-то странным поведением, поэтому я издевался над ним в JSFiddle. Скрипка в основном случайным образом выбирает один из 3-х радиоприемников при его создании. Однако скоро люди перестанут работать.
Я пробовал с и без линии, которая делает removeAttr ('checked').
Вам нужно будет щелкнуть диалоговое окно открытия и закрыть его несколько раз, чтобы остановить его работу. Я тестировал это в последней версии Chrome.
HTML
<div id="dialog" style="display:none;">
<input type="radio" class="left" name="rentFrequency" value="1" />
<span class="left"> Monthly   </span>
<input type="radio" class="left" name="rentFrequency" value="2" />
<span class="left"> Quarterly   </span>
<input type="radio" class="left" name="rentFrequency" value="3" />
<span class="left"> Annualy   </span>
</div>
<input type="button" name="dialogOpen" value="Open Dialog" />
<input type="text" name="randVal" value="" readonly="readonly" />
Javascript
$(document).ready(function() {
$('input[name="dialogOpen"]').click(function(){
$("#dialog").dialog({
title: 'Additional Tenancy Information',
resizable: false,
width: 530,
show: { effect:'fade', duration:500 },
hide: { effect:'fade', duration:400},
modal: true,
close: function (event, ui) {
},
open: function (event, ui) {
var randval=Math.floor(Math.random()*3)+1
console.log(randval);
$('input[name="randVal"]').val(randval);
$('input[name="rentFrequency"]').removeAttr('checked');
$('input[name="rentFrequency"][value="'+randval+'"]').attr('checked', 'checked');
}
});
});
});
Это фактически тот же самый код только без всплывающих окон и диалога он ведет себя, как и ожидалось:
Просто удерживая нажатой кнопку RUN
Вместо .attr («checked», «checked»); используйте функцию prop. .prop ("checked", true); - То же самое с removeAttr – tymeJV
http://jsfiddle.net/t8kN7/9/ - использование пропозиции, похоже, решает проблему – Andy