【发布时间】:2014-10-25 00:09:27
【问题描述】:
我在 UI 上有两个地址 Mailing 和 Business,我正在实施“与上面相同”复选框,用户选中此复选框,下面的 Business 地址将使用 Jquery 填充上面的邮寄地址。我使用 @Html.DropDownListFor() 表示州。
对于这个 UI,我有一个 ViewModel,它的 int selectedBusinessId {get; set;} 属性设置为 [必需]。
当用户手动更改下拉值时,DropDownListFor 将选定的值绑定到上述 viewmodel 属性,这里没有问题。因此,当用户选择“与上述相同”复选框时,Business Address State 下拉菜单会设置为 Mailing Address State USING Jquery,但问题是在提交时会引发模型错误,即 State isRequired。
那么当jquery改变DropDownListFor的选择值时,如何将DropDown的选择值绑定到viewmodel int selectedBusinessId?
ViewModel 类
public class ContactInformationViewModel
{
[Required(ErrorMessage = "State is required")]
public string mailingAddrSelectedState_Id { get; set; }
public IEnumerable<SelectListItem> states {get; set;}
[Required(ErrorMessage = "State is required")]
public string businessAddrSelectedState_Id { get; set; }
[Required(ErrorMessage = "State is required")]
public string faaAddrSelectedState_Id { get; set; }
}
用户界面
邮寄地址状态下拉菜单
@Html.DropDownListFor(model => model.mailingAddrSelectedState_Id, Model.states, "-- Select --", new { tabindex = 6 })
企业地址状态下拉菜单
@Html.DropDownListFor(model => model.businessAddrSelectedState_Id, Model.states, "-- Select --", new { tabindex = 14 })
因此,当用户选择“与上述相同”复选框时,我使用 jquery 选择 Business Address State 作为 Mailing 的 State,但我认为我还需要将选定的 Business Address State 绑定到 ViewModel 中的 businessAddrSelectedState_Id 以便在提交时它将具有选定的州。
JQuery
$('#Same_as_above').change(function(){
if (this.checked == true)
{
var mail_state = $('#mailingAddrSelectedState_Id :selected').val();
$('#businessAddrSelectedState_Id').val(mail_state);
$("#businessAddrSelectedState_Id").attr("disabled", "disabled");
}
谢谢
【问题讨论】:
-
到目前为止你做了什么?贴一些代码!
-
这里有一些代码,谢谢迈克尔
-
"....to Mailing Address State USING Jquery" 如何使用 Jquery?向我们展示您的代码。
-
这里是 jquery 代码,谢谢 TCHdvlp
标签: jquery model-view-controller mvvm binding dropdownlistfor