Select 框在 select 上禁用自身

Select box disable self on select

我想在用户 select 某事时禁用 select 框。 Javascript代码:

function desabilitar(val) {
    $(val).attr('disabled','disabled');
}

HTML:

<select class="form-control" onchange="desabilitar('mes')"  id="mes" name="mes">

但是不起作用...有什么帮助吗?

您应该使用 prop 而不是 attr,并确保您 select 使用“#”的 id 属性:

示例:

function desabilitar(val) {
  $('#'+val).prop('disabled', true);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control" onchange="desabilitar('mes')"  id="mes" name="mes">
  <option>123</option>
  <option>456</option>
</select>

试试这个:

function desabilitar(val) {
 document.getElementById(val).disabled = true;
}

同jQuery:

function desabilitar(val) {
  $("#" + val).attr('disabled', 'disabled');
}

您要使用 jQuery 还是 JavaScript?在您的问题中,您要求 JavaScript 但您使用的是 jQuery?

您需要在 val 之前添加 "#" +。这将确保您正在寻找 ID 为 val.

的元素

function desabilitar(val) {
  $("#" + val).attr('disabled', 'disabled');

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control" onchange="desabilitar('mes')" id="mes" name="mes">
  <option>Test 1</option>
  <option>Test 2</option>
  <option>Test 3</option>
</select>

您需要使用 # 来通过其 id 正确获取元素并设置 disabled 属性,如下所示:

function desabilitar(val) {
$("#"+val).attr('disabled','disabled');

}