如何使用Javascript禁用单选按钮中的文本框

时间:2014-05-09 15:18:05

标签: javascript jquery

我的功能是

  • 如果我选择第一个(第二个或最后一个)选项,其余选项将禁用重置为空,并且所选选项中的所有值都将为启用作为我的Javascript如下。
  • 此外,每当taxi选项被选中时,我想禁用文本框作为左下方。

Image


Demo

HTML:

<table>
<tr>
    <td>
        <input type="radio" name="vehicle" value="company_vehicle" />Company Vehicle</td>
</tr>
<tr class="set_width" id="company_vehicle">
    <td>
        <input type="text" />
    </td>
    <td>
        <input type="checkbox" />Company Vehicle</td>
</tr>
<tr>
    <td>
        <input type="radio" name="vehicle" value="hiring_vehicle" />Hiring Vehicle</td>
</tr>
<tr class="set_width" id="hiring_vehicle">
    <td>
        <input type="text" />
    </td>
    <td>
        <input type="radio" name="abc" value="car" />Car</td>
    <td>
        <input type="radio" name="abc" value="bus" />Bus</td>
</tr>
<tr>
    <td>
        <input type="radio" name="vehicle" value="taxi" />Taxi</td>
</tr>
<tr class="set_width" id="taxi">
<td>
        <input type="checkbox" />Taxi</td>
</tr>
</table>

使用Javascript:

var rbt_vehicle = $("input[name=vehicle]");

$(rbt_vehicle).on('change', function (e) {
var valueSelected = this.value;

$('#' + valueSelected).find(':text').prop('disabled', false).val('').removeClass('readonly').closest('tr').siblings('tr.set_width').find(':text').prop('disabled', true).addClass('readonly');
$('#' + valueSelected).find(':checkbox,:radio').prop('disabled', false).closest('tr').siblings('tr.set_width').find(':checkbox,:radio').prop('disabled', true);
});

2 个答案:

答案 0 :(得分:2)

这样做:

$('input.rdo').click(function(){
if(this.id == 'rdoTaxi')
{
    $('.textbox').prop('disabled',true);
}
    else
    {
        $('.textbox').prop('disabled',false);
    }

});

Fiddle DEMO

答案 1 :(得分:1)

使用当前功能,您实际上可以删除大量当前代码,并执行以下操作:

var rbt_vehicle = $("input[name=vehicle]");

$(rbt_vehicle).on('change', function (e) {
    var valueSelected = this.value;

    // your other code here ...

    $('input[type="text"]').prop('disabled', valueSelected === 'taxi');

});

<强> DEMO