Javascript 选择Select2中的选项-禁用/启用不触发的操作

Javascript 选择Select2中的选项-禁用/启用不触发的操作,javascript,jquery,forms,jquery-select2,Javascript,Jquery,Forms,Jquery Select2,我有一个select Select2下拉框和一个默认禁用的空白文本框 当用户选择一个选项,即“ServiceNow”时,我希望文本框将disabled设置为false 目前,该功能似乎是随机的。四个可用选项中的两个启用该字段,两个禁用该字段。即使是我想要的也不能实现它。我在这里做错了什么 表单HTML <div> <label for="feature">Feature</label> <select class="form-control se

我有一个select Select2下拉框和一个默认禁用的空白文本框

当用户选择一个选项,即“ServiceNow”时,我希望文本框将disabled设置为false

目前,该功能似乎是随机的。四个可用选项中的两个启用该字段,两个禁用该字段。即使是我想要的也不能实现它。我在这里做错了什么

表单HTML

<div>
  <label for="feature">Feature</label>
  <select class="form-control select2" style="width: 100%;" name="feature" id="feature">
    <option selected="selected" disabled="disabled">-Select-</option>
    <option name="ServiceNow" value="ServiceNow">Service Now</option>
    <option>Epic Upgrade</option>
    <option>Alarais Interop</option>
    <option>Pyxis Upgrade</option>
  </select>
</div>
<div class="col-xs-4">
  <label for="serviceNowID">ServiceNow ID</label>
  <input type="text" class="form-control" name="serviceNowID" id="serviceNowID" disabled="disabled" placeholder="ServiceNow ID (This doesn't work yet.)">
</div>

特征
-挑选-
立即服务
史诗级升级
阿拉赖斯互操作
Pyxis升级
ServiceNow ID
相关JS

<script> 
//Get the ServiceNow thing to unlock on option select
//Evaluate if option is selected
$('#feature').on("select2:selecting", function(e) { 
   var choice = $(this).find('option').val();

   if ($(this).val() == 'ServiceNow') {
    document.getElementById("serviceNowID").disabled = false;
   } else {
    document.getElementById("serviceNowID").disabled = true;
   }
});
</script>

//在选择选项时获取要解锁的ServiceNow对象
//如果选择了该选项,则进行评估
$('#feature')。在(“select2:selection”,函数(e){
var choice=$(this.find('option').val();
if($(this).val()=='ServiceNow'){
document.getElementById(“serviceNowID”).disabled=false;
}否则{
document.getElementById(“serviceNowID”).disabled=true;
}
});
谢谢

当用户选择一个选项,即“ServiceNow”时,我希望文本框将disabled设置为false

也许您应该使用“选择”事件而不是“选择”事件

$('#feature').on("select2:select", function(e) { 
...
当用户选择一个选项,即“ServiceNow”时,我希望文本框将disabled设置为false

也许您应该使用“选择”事件而不是“选择”事件

$('#feature').on("select2:select", function(e) { 
...

以下是一个可能对您有所帮助的示例:


特征
-挑选-
立即服务
史诗级升级
阿拉赖斯互操作
Pyxis升级
ServiceNow ID
//在选择选项时获取要解锁的ServiceNow对象
//如果选择了该选项,则进行评估
$(“#功能”)。关于(“更改”,函数(e){
if($(this).val()=='ServiceNow'){
$(“#serviceNowID”).attr('disabled',false);
}否则{
$(“#serviceNowID”).attr('disabled',true);
}
});

以下是一个可能对您有所帮助的示例:


特征
-挑选-
立即服务
史诗级升级
阿拉赖斯互操作
Pyxis升级
ServiceNow ID
//在选择选项时获取要解锁的ServiceNow对象
//如果选择了该选项,则进行评估
$(“#功能”)。关于(“更改”,函数(e){
if($(this).val()=='ServiceNow'){
$(“#serviceNowID”).attr('disabled',false);
}否则{
$(“#serviceNowID”).attr('disabled',true);
}
});

general Select2库之外的出色工作方式。谢谢你!非常棒的示例在general Select2库之外使用非常棒的方法。谢谢你!真棒的例子