【发布时间】:2016-09-13 08:21:41
【问题描述】:
在我的 MVC 5 应用程序中,我有一个带有下拉列表和一些必填字段的表单。当下拉选择更改时,我需要更改字段的此属性。
我有这个枚举
public enum OrderKind
{
Market,
Research,
}
我从中填写下拉列表。我已经使用 javascript 来显示或隐藏有效的字段。
某事
$(function () {
$('#orderkind').change(function () {
var value = $(this).val();
if (value == "Market") {
$(datefrom).hide();
$(datefrom).hide();
$("#fromDate").attr("required", false);
$("#toDate").attr("required", false);
else if (value == "Research") {
$(datefrom).show();
$(datefrom).show();
$("#fromDate").attr("required", true);
$("#toDate").attr("required", true);
fromDate.setCustomValidity('Please Fill the date from field');
toDate.setCustomValidity('Please Fill the date to field');
}
但它使日期字段始终是必需的,即使它们已被填写,它也会显示消息。 有没有办法从控制器检查下拉列表值? 谢谢!
【问题讨论】:
-
先修复语法错误,然后用
.prop()代替.attr() -
考虑使用 foolproof
[RequiredIf]或类似的条件验证属性,以便您获得开箱即用的客户端和服务器端验证 -
Satpal,谢谢您的回复,我采纳了您的建议,但没有任何改变。它总是显示消息。
-
if 条件之前的 value 变量是什么?
-
@StephenMuecke,你好,我试过万无一失,但是当我提交表单时,我收到错误“对象引用未设置为对象的实例。”有什么想法吗?