0

嗨,大家好,有一个非常有趣的情况。

我有一个视图模型,它需要下拉列表中的媒体类型 *顺便说一下下拉列表的生成方式

@Html.DropDownListFor(m => m.MediaType, Model.MediaTypeList)

当我手动填写表格时,表格的所有值都可以,并且功能按应有的方式工作。

但后来我实现了一个 jquery 函数来设置下拉列表的值,只要你上传一个文件,它就会自动检测它有什么媒体类型。

function setValueToDropDown(media){                                        
    $('#MediaType').attr('disabled','');   
    var value = media;
    $('#MediaType').val(value);   
}

当我提交域验证时告诉我该字段是必需的,即使选择了下拉列表选项并且当我在控制台中执行一个函数来验证它的值不是空值时。

alert($('#MediaType').val()) 

所以我不明白为什么当我动态地将值分配给下拉列表时,mvc 无法识别它。我到处找,我找不到问题。

4

2 回答 2

1

我不知道你运行的脚本是什么样子的,也不知道它做了什么。但也许脚本正在寻找value 属性而不是value 属性

尝试使用这个:

function setValueToDropDown(media){                                        
    $('#MediaType').attr('disabled','');   
    var value = media;                    // Why do you save media in value...?
    $('#MediaType').attr("value", value);   
}
于 2012-05-21T08:54:51.003 回答
1

这应该足以启用和设置<select>元素的值。

var setValueToDropDown = function(media) {
  $('#MediaType').prop('disabled', false).val(media);
};

从 1.6 版开始,您应该使用.prop()来管理属性disabled。还要确保在 DOM 准备好等之后运行脚本。;)

于 2012-05-21T09:33:42.653 回答