变灰按钮,直到在下拉菜单中选择了某个值

问题描述

如果在此下拉菜单中选择了认的“选择” ...

@Html.DropDownListFor(x => x.ID,new SelectList(Model.Data,"ID","Info"),"Choose",new {@id = "DDL" }})

我希望此按钮显示为灰色。

 <input name="Submitbtn" type="Submit" id="Submit" value="Submit"/>

我已经在条件中尝试了此方法,但是它根本没有改变按钮...

$('#DDL').change(function () 
{
       if ($("#DDL option:selected").text() == 'Choose')
        {
              ///which of these?
              $(".Submitbtn").attr('disabled',true);
              $("#Submitbtn").attr("disabled","disabled");
        }
}

解决方法

@id=恢复到原始状态:

@Html.DropDownListFor(x => x.ID,new SelectList(Model.Data,"ID","Info"),"Choose")

将创建一个

<select id="ID" name="ID">

所以您的jquery应该是

$("#ID").change(function() { if $(this).text() == "Choose") {...

对于按钮本身,#SubmitBtn必须与按钮ID相匹配,即Submit(无Btn),并给出:

$("#Submit").attr("disabled","disabled");

更新的代码段:

$('#ID').change(function() {
  if ($("#ID option:selected").text() == 'Choose') {
  
    $("#Submit").attr("disabled","disabled");

  } else {
  
    $("#Submit").attr("disabled",null);
    
  }
});

// trigger/run on startup to disable as default is Choose
$('#ID').change();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="ID">
  <option>Choose</option>
  <option value="val1">text 1</option>
  <option value="val2">text 2</option>
</select>
<input name="Submitbtn" type="Submit" id="Submit" value="Submit" />