根据下拉列表选择MVC 5创建不需要的字段

时间:2016-09-13 08:21:42

标签: javascript asp.net-mvc

在我的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');
          }

但它使得日期字段始终是必需的,即使它们被填充它也会显示消息。 有没有办法从Controller检查下拉列表值? 谢谢!

3 个答案:

答案 0 :(得分:0)

我认为你必须将你的枚举改为

public enum OrderKind
{
    Market = 1,
    Research = 2,
}

然后,将值绑定到下拉列表中,并将add external (default)值绑定到它。

答案 1 :(得分:0)

为您的表单提供ID,如下所示

.get_attribute("innerText")
在Jquery中

.text

您可以在Jquery中设置验证错误,例如this

答案 2 :(得分:-1)

试试这段代码,希望这有帮助

$(function () {

$('#orderkind').change(function () { var value = $(this).val(); if (value == "Market") { $(datefrom).hide(); $(datefrom).hide(); $("#fromDate").removeAttr('required'); $("#toDate").removeAttr('required'); else if (value == "Research") { $(datefrom).show(); $(datefrom).show(); $("#fromDate").attr('required', 'required'); $("#toDate").attr('required', 'required'); fromDate.setCustomValidity('Please Fill the date from field'); toDate.setCustomValidity('Please Fill the date to field'); } });