1

如果从选择输入中选择“现金”付款,我编写了这段代码来“禁用”文本输入。如果选择了“信用卡”付款,我还想“启用”文本输入。但我什至无法使用 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>
4

5 回答 5

3

在这里提琴

这将起作用。但我建议从只读更改为 attr:disabled,我认为对用户来说更清楚。在这种情况下检查这里

脚本/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');
}
};
于 2013-07-04T07:52:00.570 回答
0
document.getElementById('inputWarning').disabled=""

http://jsfiddle.net/rKQjp/

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

于 2013-07-04T07:45:59.997 回答
0

试试看:

function enableElements()
{
    if($('#payment-type').val() == "cash"){
        $('#inputWarning').attr('disabled', 'true');
    }
    else $('#inputWarning').attr('disabled', 'false');
}
于 2013-07-04T07:46:42.270 回答
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');
}
于 2013-07-04T07:47:05.387 回答
0

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

<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
于 2013-07-04T07:47:38.487 回答