JavaScript:根据从“选择输入”中选择的值启用/禁用“文本输入”

时间:2013-07-04 07:40:10

标签: javascript jquery html

如果从选择输入中选择“现金”付款,我写了这段代码来“禁用”文本输入。如果选择“信用卡”付款,我还想“启用”文本输入。但我甚至无法使用JavaScript完成启用。

<input type="text" readonly="true" class="credit_card_number" id="inputWarning" name="credit_card_number"/>

HTML:

<div class="control-group">
<label for="payment_type" class="control-label"><i class="icon-book"></i> Payment Type</label>
<div class="controls">
<select size="1" id="payment_type" name="payment_type" onchange="enableElements();">
    <option value="cash" id="cash" selected="selected">Cash</option>
    <option value="amex" id="credit_card">American Express</option>
    <option value="master" id="credit_card">Master Card</option>
    <option value="visa" id="credit_card">Visa</option>
</select>
</div>

JavaScript:

<script>
function enableElements()
{
document.getElementById('inputWarning').disabled=false;
}
</script>

5 个答案:

答案 0 :(得分:3)

<强> FIDDLE HERE

这会奏效。但我建议从只读更改为attr:禁用,对用户来说更清晰,我认为。在这种情况下,请检查here

脚本/ jQuery的

function enableElements() {
if ($("#payment_type").val() == 'cash') {
    $("#inputWarning").prop('readonly', true);
    console.log('cash');
}

if ($("#payment_type").val() == 'amex' || $("#payment_type").val() == 'master' || $("#payment_type").val() == 'visa') {
   $("#inputWarning").prop('readonly', false);
    console.log('other');
}
};

答案 1 :(得分:0)

document.getElementById('inputWarning').disabled=""

http://jsfiddle.net/rKQjp/

通过将disabled属性设置为“disabled”来禁用该元素,如果将此属性设置为空字符串,则会再次启用该元素。

答案 2 :(得分:0)

试试:

function enableElements()
{
    if($('#payment-type').val() == "cash"){
        $('#inputWarning').attr('disabled', 'true');
    }
    else $('#inputWarning').attr('disabled', 'false');
}

答案 3 :(得分:0)

function enableElements()
{
    var e = document.getElementById("payment_type");
    var str = e.options[e.selectedIndex].value;
    if(str == 'Cash')
       document.getElementById('inputWarning').setAttribute("readonly", "true");
    else if(str == 'amex' || str == 'master' || str == 'visa')
       document.getElementById('inputWarning').setAttribute("readonly", "false");
}

注意:有问题,同样的ID有3个选项。使用不同的属性来识别

使用jQuery:

function enableElements()
{
    var str = $("#payment_type").val();
    if(str == 'Cash')
       $('#inputWarning').attr('readonly', true);
    else if(str == 'amex' || str == 'master' || str == 'visa')
       $('#inputWarning').removeAttr('readonly');
}

答案 4 :(得分:0)

试试这个脚本。我用过jquery。确保添加jquery lib。

<script>
function enableElements()
{
var type = $('#payment_type').val();
if(type == 'amex' || type == 'master' || type == 'visa')
{
   $("#inputWarning").attr("readonly", true);
}
else
{
   $("#inputWarning").attr("readonly", false);
}

</scrip