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

时间:2015-04-20 15:21:32

标签: javascript jquery html

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

这是我的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" >

3 个答案:

答案 0 :(得分:2)

试试这个:

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;
}

答案 1 :(得分:0)

我用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");
        });
    });

演示:http://jsfiddle.net/c4rks52r/

答案 2 :(得分:0)

这将是我如何使用jQuery(demo here)

执行此操作
$(document).on('change', '#combo', function(){
    var shouldEnable = $(this).val() !== 'Delivered';
    $('#textbox').prop('disabled', shouldEnable);
});

旁注,您是否曾经具体说明选择哪个值是启用的触发器?当其他人走这条路的时候,我就和Delivered一起去了。也许我错过了你明确表达的地方。另外,根据您想要仅在选择特定值时启用它的描述,我假设您希望在页面加载时最初禁用它。我的演示已经到位了。