我有一个填充了国家/地区的DropDownList。
当用户选择美国时,我需要显示美国州的下拉列表。如果用户使用CA provinces...else选择CA - show下拉菜单,则显示TextBox。根据选择的国家/地区,我使用jQuery隐藏/显示。这样就可以了。问题出在用户提交时的ActionResult中。
Html.DropDownList("State", ViewData["States"] as SelectList,
new { @class = "states", @style = "display:none;" })
Html.DropDownList("State", ViewData["Provinces"] as SelectList,
new { @class = "provinces", @style = "display:none;" })
Html.TextBox("State", null, new { @class = "stateFreeForm" })
我用US和CA数据预先加载了2个dropdowns,web模型有一个名为State的字符串成员,但它映射到第一个DropDownList (美国州)。因此,即使在页面上有一个可见的TextBox,listing.State成员也包含从US下拉列表中选取的数据。我使用的是验证,而州是必需的,所以我只希望有一个州(而不是州、省或其他)。是否可以在jQuery中设置和更改web模型和控件之间的映射。
我更喜欢预先加载dropdowns,并通过脚本切换它们,而不是调用ajax来重新加载dropdowns等。
public ActionResult Post(MyApp.Web.Models.Listing listing)
{
}
谢谢..。
发布于 2010-05-27 14:22:38
有很多方法可以做到这一点...但我认为最快的方法是修改您的jQuery验证。如果您使用的是主jQuery验证插件,则可以将其设置为使用依赖验证,因此根据为Country选择的内容,您可以验证不同的字段。
http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-expression
发布于 2010-05-27 14:25:15
只需将第二个选择列表命名为“省份”。不要把你自己、框架和其他人搞混了。
或者真的真的有很好的理由不这么做?
我猜i don't want to fix validation in order to fit business
不算数。
https://stackoverflow.com/questions/2921911
复制相似问题