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

JavaScript:根据从“选择输入”中选择的值启用/禁用“文本输入”,javascript,jquery,html,Javascript,Jquery,Html,我写这段代码是为了在选择输入中选择现金支付时禁用文本输入。如果选择了信用卡付款,我还想启用文本输入。但我甚至无法用JavaScript完成启用 <input type="text" readonly="true" class="credit_card_number" id="inputWarning" name="credit_card_number"/> HTML: JavaScript: 通过将disabled属性设置为disabled,元素将被禁用。如果将此属性设置为空字符

我写这段代码是为了在选择输入中选择现金支付时禁用文本输入。如果选择了信用卡付款,我还想启用文本输入。但我甚至无法用JavaScript完成启用

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

JavaScript:

通过将disabled属性设置为disabled,元素将被禁用。如果将此属性设置为空字符串,元素将再次被启用。

请尝试:

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

注意:在问题中,3个选项都有相同的id。使用不同的属性来标识

使用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');
}

试试这个脚本。我使用了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
这会奏效的。但我建议将只读改为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');
}
};

请尝试$'inputWarning'.attr'disabled','false';这里只有一个文本输入。对于如此简单的东西,没有必要使用jQuery。无论如何,它是用jQuery标记的!这个问题有一个jquery标签,所以我使用了jquery。我已经看到很多刚刚开始学习javascript的人使用jquery时甚至没有意识到它不是纯javascript;我想@sauceord可能就是其中之一。老实说,我更喜欢PHP,只要我需要一些漂亮的东西,比如日期和时间选择器,我就会使用JavaScript或jQuery。因此,我对自己缺乏JavaScript知识表示歉意:OP的输入中有一个只读属性,因此它不可写。注意:有问题的是,3个选项都有相同的id。使用不同的属性来标识@Paritosh抱歉。把他们换成班级。我可能在玩推特引导时忘记了一些基本知识。修正!:我想我可能会坚持@Sergio的解决方案。它一开始就奏效了。现在定制它。无论如何,谢谢你
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");
}
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');
}
<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
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');
}
};