代码之家  ›  专栏  ›  技术社区  ›  Akshay

无法启用/禁用html表行中的输入控件

  •  0
  • Akshay  · 技术社区  · 6 年前

    我无法启用/禁用 请求FeeotherServices 选择控件更改时的输入控件 请求的FeeService .

    我在.netmvcshtml页面中有这个表

    <tbody>
                        @foreach (DataRow row in Model.Tables["PM_Fee"].Rows)
                        {
                            <tr>
                                <td>
                                    <div class="editDelInputFee FeeServiceRequestedText">
                                        @row["FeeDescription"]
                                    </div>
                                    <div class="saveCanInputFee FeeServiceRequestedSelectFee" style="display:none">
                                        <select class="form-control form-control-sm " style="font-size:8pt;" id="FeeServiceRequested" onchange="EnableOtherTextbox_Fee(this);">
                                            @foreach (DataRow row0 in Model.Tables["PM_Fee_ServiceRequested"].Rows)
                                            {
                                                <option value="@row0["ServiceRequested"]">@row0["ServiceRequested"]</option>
                                            }
                                        </select>
                                    </div>
                                </td>
                                <td>
                                    <div class="editDelInputFee FeeOtherServiceRequestedText">
                                        @row["FeeOtherDescription"]
                                    </div>
                                    <div class="saveCanInputFee FeeOtherServiceRequestedInputFee" style="display:none">
                                        <input type="text" class="form-control form-control-sm " style="font-size:8pt;" id="FeeOtherServiceRequested">
                                    </div>
                                </td>
                                 </tr>
                        }  
        </tbody>
    

    这个javascript函数

    function EnableOtherTextbox_Fee(sel) {
        var tableRow = $(sel).closest('tr');
        var FeeOtherServiceRequested = tableRow.find("input[id*='FeeOtherServiceRequested']");
        var inputs = document.getElementById('FeeOtherServiceRequested');
    
        if (sel.value == "Other (specify)") {
            inputs.disabled = false;
        }
        else {
            inputs.disabled = true; inputs.value = '';
        }
    }
    

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  1
  •   Akshay    6 年前

    好吧,我这么做是为了解决这个问题。从输入控件中删除ID并修改此方法。

    function EnableOtherTextbox_Fee(sel) {
        var tableRow = $(sel).closest('tr'); 
        var inputs = tableRow.find('.FeeOtherServiceRequestedInputFee input');      
        if (sel.value == "Other (specify)") {
            inputs.prop("disabled", false); 
        }
        else {
            inputs.prop("disabled", true); inputs.val('');
        }
    }