我有一个问题,我想记住 jQuery UI 对话框弹出窗口中选中的单选按钮。
我遇到了一些奇怪的行为,所以我在 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