MVC和JQuery Mobile:单选按钮在发布时释放状态
MVC and JQuery Mobile : Radiobutton looses state on post
我在一个页面上使用Jquery Mobile,该页面设置为data-ajax="false",以便在加载时始终刷新内容。
javascript在document.ready()上设置了单选按钮状态(已检查/未检查),但它仅在GET请求中成功。
当我点击保存按钮,页面在POST后再次加载时,选择就消失了。
@using (Html.BeginForm())
{
@Html.HiddenFor(x => x.CurrentCulture);
<input type="radio" name="radio-language" id="radio-language-eng" value="en-US" />
<label for="radio-language-eng">English</label>
<input type="radio" name="radio-language" id="radio-language-esp" value="es-MX" />
<label for="radio-language-esp">Spanish</label>
<input type="submit" value="Save Changes" />
}
<script type="text/javascript">
$(document).ready(function () {
var currentCulture = $("#CurrentCulture").val();
$('input[type=radio][name=radio-language]').checkboxradio();
$("#radio-language-eng").prop("checked", currentCulture == "en-US");
$("#radio-language-esp").prop("checked", currentCulture == "es-MX");
$('input[type=radio][name=radio-language]').checkboxradio("refresh");
$('input[type=radio][name=radio-language]').change(function () {
$("#radio-language-eng").prop("checked", this.value == "en-US");
$("#radio-language-esp").prop("checked", this.value == "es-MX");
$("#CurrentCulture").val(this.value);
});
});
</script>
检查隐藏字段的值,它包含正确的区域性,那么为什么单选按钮会丢失它的状态呢?
您可以用RadioButtonFor()
替换包含脚本的代码,并强绑定到您的模型。请注意,您需要为按钮提供一个id
属性,以使用关联的标签并防止无效的html。
@Hml.RadioButtonFor(m => m.CurrentCulture, "en-US", new { id = "eng" })
@Html.Label("eng", "English")
@Hml.RadioButtonFor(m => m.CurrentCulture, "es-MX", new { id = "esp" })
@Html.Label("esp", "Spanish")
相关文章:
- MVC和JQuery Mobile:单选按钮在发布时释放状态
- 在拖动过程中释放鼠标时忽略 JavaScript mouseUp 事件
- 在客户端断开连接时释放事件处理程序 Socket.IO
- 如果释放鼠标时内部元素未悬停,则防止触发“单击”的正确方法
- 单击时更改鼠标指针,释放时返回
- 当在堆栈底部添加ImageView时,我想删除RelativeLayout中的顶部ImageView,但它正在删除整个布
- 重置输入类型=释放鼠标时的范围
- 在鼠标释放时打开引导模式,jQuery Selectable
- Famo.us 球拖放,释放时设置速度
- 流星“变化”值在释放鼠标时出现,而不是在拖动输入滑块时出现
- 画布 KineticJS - 当我在形状上方释放鼠标时出错
- 当用户将鼠标拖到浏览器窗口外并将其释放到浏览器窗口外时,如何获得通知
- 鼠标释放时抓取元素的位置jQuery可拖动
- 在JavaScript中释放密钥时,如何停止声音
- jwplayer内存泄漏/未在后续加载时释放内存
- 如何在鼠标释放时在Openlayers中完成徒手绘制
- "可以't从释放的脚本执行代码“t”;在IE9中调用date.getHours()时
- 鼠标左键函数只在LMB释放时执行
- 鼠标事件"mousemove"在按下和释放鼠标按钮时触发
- 使它在悬停时可见,并在鼠标移出后保持悬停效果,但在其他元素悬停时释放