我有一个 ASP.NET 应用程序,我正在使用 jQuery 来切换某些字段的启用。这是 UI 的粗略图:
__ checkbox1
o radio1
o radio2
text1
text2
当checkbox1被选中时,我启用radio1和radio2。选择 radio2 时,我启用 text1 和 text2。
在我的情况下发生的事情是在用户选中复选框并启用单选按钮之后,如果用户选择 radio2 并提交表单,则选择会自动返回到 radio1。
如果我不使用 jQuery 动态启用单选按钮,则不会出现此问题。所以我想知道单选按钮的启用方式是否与 ASP.NET 如何与单选按钮配合使用效果不佳。
当复选框值发生变化时,我在代码中调用以下辅助方法。由于 ASP.NET 将在禁用单选按钮周围添加一个,因此我确保关闭跨度和输入上的禁用标志。
function setRadioEnabled(id, enabled) {
var radio = jQuery(id);
var parentSpan = radio.parent();
if (enabled) {
parentSpan.removeAttr('disabled');
radio.removeAttr('disabled');
} else {
radio.attr('disabled', 'disabled');
parentSpan.attr('disabled', 'disabled');
}
}
单选按钮被定义为 ASP:RadioButton 标记,它们共享一个 GroupName,即使它们位于不同的表行中。这会产生两个具有匹配名称值的输入 type=radio 实例。
我通过在回发方法中放置一个断点并查看 radio1.Checked 的值为 true 和 radio2.Checked 为 false 来确认我的收音机正在重置,因为页面已提交。什么可能导致页面切换我的单选按钮的值?
在此先感谢,大卫