正在将信息上载到具有禁用文本框的数据库


Uploading Information to a database with a disabled textbox

我的表单有两个单选按钮(Yes和No)和一个文本框。如果用户单击"是",它将启用文本框,您可以输入信息,并将其上载到数据库,包括单选按钮中的值。如果单击"否",它将禁用文本框,并假设仅将单选框的值上载到数据库。但我不明白。

<input type="radio" name="TermLease" value="No" onclick="TermLeaseMonths.disabled=true">No
<input type="radio" name="TermLease" value="Yes"  onclick="TermLeaseMonths.disabled=false">Yes | 
How many months:<input type="hidden" name="TermLeaseMonths"  value="0" />
<input type="text" name="TermLeaseMonths" id="TermLeaseMonths" size="1" disabled="true">

我有一个上传值的隐藏输入类型。但当我单击"是"时,它不会禁用文本框。不确定我哪里错了。

您忘记了文本字段的give id。试试这个

<input type="radio" name="TermLease" value="No" onclick="TermLeaseMonths.disabled=true">No
<input type="radio" name="TermLease" value="Yes"  onclick="TermLeaseMonths.disabled=false">Yes | 
How many months:<input type="hidden" name="TermLeaseMonths"  value="0" />
<input type="text" name="TermLeaseMonths" id="TermLeaseMonths" size="1" disabled="true">

点击单选按钮试试这个,我们可以用这种方式

$('#radio').click(function () {
    if (("#radio").val() == "") {
        $('class_name_oftextBox').attr("disabled", true);
    } else {
        $('class_name_oftextBox').removeAttr("disabled");
    }
});

或者你可以做

$('#enable').click(function () {
    $('#textBox').removeAttr("disabled")
});
$('#disable').click(function () {
    $('#textBox').attr("disabled", "disabled");
});

演示jsFiddle

HTML

<form>
    <span style="float: left;">
        <label><input type="radio" name="TermLease" value="No" onclick="ShowHideTextbox('leaseMonths', false)" />No</label>
        <label><input type="radio" name="TermLease" value="Yes"  onclick="ShowHideTextbox('leaseMonths', true)"/>Yes</label>
    </span>
    <span id="leaseMonths" style="display: none; float: left;">
        <span> | </span>  <span>How many months: </span>
        <input type="text" name="TermLeaseMonths" id="TermLeaseMonths" size="1" />
    </span>
</form>

JS

var previousNumberOfMonths = "0";
function ShowHideTextbox(elementId, show) {
    var link = document.getElementById(elementId);
    var textbox = document.getElementById("TermLeaseMonths");
    if (show){    
        textbox.value = previousNumberOfMonths;
        link.style.display = 'block';
    }
    else {
        link.style.display = 'none';
        previousNumberOfMonths = textbox.value;
        document.getElementById("TermLeaseMonths").value = "0";
    }
}