MVC 和 JQuery 移动设备:单选按钮在 post 上丢失状态
MVC and JQuery Mobile : Radiobutton looses state on post
我在设置了 data-ajax="false" 的页面上使用 Jquery Mobile 以始终在加载时刷新内容。
A javascript 在 document.ready() 上设置单选按钮状态(checked/not 已选中),但它仅在 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")
我在设置了 data-ajax="false" 的页面上使用 Jquery Mobile 以始终在加载时刷新内容。
A javascript 在 document.ready() 上设置单选按钮状态(checked/not 已选中),但它仅在 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")