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