Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据选择启用/禁用输入框_Javascript_Jquery_Html - Fatal编程技术网

Javascript 根据选择启用/禁用输入框

Javascript 根据选择启用/禁用输入框,javascript,jquery,html,Javascript,Jquery,Html,我想在从“选择”下拉列表中选择特定值时启用此文本框,并在选择任何其他选项时禁用此文本框 这是我的html: <select name="status" id ="combo"> <option value="_">Please choose..</option> <option value="Pending">Pending</option> <option value="Proce

我想在从“选择”下拉列表中选择特定值时启用此文本框,并在选择任何其他选项时禁用此文本框

这是我的html:

<select name="status" id ="combo">
      <option value="_">Please choose..</option>
        <option  value="Pending">Pending</option>
        <option  value="Process">Process</option>
        <option  value="Delivered" >Delivered</option>
      </select>
 <tr valign="baseline">
 <td nowrap="nowrap" align="right" class="postage" >Postage:</td>
 <input type="text" name="postage" id="textbox" >

请选择。。
悬而未决的
过程
交付
邮资:
试试这个:

var select_element = document.getElementById( "combo" );
var selected = select_element.options[ select_element.selectedIndex ].value

if(selected == "Delivered"){
  document.getElementById("textbox").disabled = false;
}else{
  document.getElementById("textbox").disabled = true;
}

我看到了jQuery的原始标题,但有人编辑了它。无论如何,如果您想知道在jQuery中是如何实现的,这里是:

 $(document).ready(function () {
        var $input = $('input[name=postage]');
        $input.attr('disabled', 'disabled');
        $('select[name=status]').on('change', function () {
            $input.attr('disabled', $(this).val() != "Delivered");
        });
    });

演示:

这就是我使用jQuery(:


旁注,你有没有明确说过选择哪个值是启用的触发因素?我只是选择了Delivered,因为其他人都选择了Delivered。也许我没有听到你明确说过的地方。另外,根据你关于只在选择特定值时才启用它的描述,我想你最初会希望它被禁用当页面加载时。我的演示已经准备好了。

您需要javascript或名为jquery的javascript库来完成此操作:-)我可以为您编写脚本。您可以展示您迄今为止的尝试吗?另外,这不是有效的HTML。您不能将
作为
的兄弟姐妹,也不能将
作为
@Redrif的子代。为手头的简单任务向项目添加jQuery是一种过火的做法。告诉人们“添加jQuery”作为每个问题的解决方案是不好的建议。jQuery很棒,我在必要时在我的项目中使用它,但是添加它应该是基于整个项目和目标部署平台的决定。我们这里没有足够的信息来提出这样的建议。jQuery是数千行代码,添加它来完成一项基本任务就像用链锯切生日蛋糕一样。@Chris Baker是的,你说得对。谢谢你的建议:-)@Redrif我支持这个建议,不过在这个问题上,jQuery应该被添加到标签中。它被其他人从标题中删除,他们这样做时没有添加标签。OP显然已经有了jQuery:)正如Chris Baker所指出的,用户并没有表示有权访问jQuery。另外,我相信您现在应该使用prop而不是attr。@ScottSmith事实上,我刚刚看到编辑历史,有人确实从标题中删除了“jQuery”一词,但没有添加标记。如果马塞尔想取消删除他的答案,我会收回我的否决票。啊,很好的接球,我没看到。
$(document).on('change', '#combo', function(){
    var shouldEnable = $(this).val() !== 'Delivered';
    $('#textbox').prop('disabled', shouldEnable);
});