Đã giải quyết đây là cách giải quyết mà tôi sử dụng
chức năng Javascript
function myDisable(){ var elements = document.querySelectorAll('.dropdown-display'); elements.forEach(function(element){ element.classList.add('toDisable'); }); } myDisable();CSS
.toDisable{ background-color: #dfe0e0 !important; pointer-events: none; /* não reagir a qualquer evento de rato como arrastar, clique etc */ }Với điều này, tôi có thể "chặn" sự kiện nhấp vào danh sách thả xuống
Xin chào,Vui lòng thử mã này
\\Javascript
$('#ParentDD').change(function(){ var SelectedDD = $(this).val(); if(SelectedDD == "P1") { var x=document.getElementById("ChildDD"); x.disabled=true; } else if(SelectedDD == "P2") { var x=document.getElementById("ChildDD"); x.disabled=false; } });\\Mã khách hàng
Tôi đã đọc tài liệu này để hiểu rõ hơn để đạt được yêu cầu của mình. Tôi đã thử đoạn mã dưới đây
sử dụng các tập lệnh jquery bên dưới
và tôi đã nhận xét các tập lệnh trên và sử dụng tập lệnh này theo tài liệu, logic bật hoặc tắt logic của tôi không hoạt động nhưng như thể hiện trong ví dụ tài liệu đang hoạt động
Vì vậy, hãy gợi ý cho tôi khái niệm nào tôi nên sử dụng để đạt được chức năng này
Tự động thêm các bản ghi vào bảng jquery bằng mã bên dưới
function AddAutoTradePagerows() { $('#btnAdd').on("click", function (e) { e.preventDefault(); //selectedinstrument: $('#AutoTradeTop_Instrument option:selected').text() var paramsmbl = { entredsmbl: $('#search').val() }; //alert(paramsmbl.entredsmbl); $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "AutoTrade.aspx/AutoFillData", data: JSON.stringify(paramsmbl), dataType: "json", dataFilter: function (data) { return data; }, success: function (data) { var ddlExitoptsdata = ''; $.each(data.d, function (key, value) { if (value.Type == "exitparameters") { //Adding values to variable ddlExitoptsdata += ""; } }); //Calling method to fill the data AddTableRowsToTable(symbol, instrument, expdate, lotsize, delta, ltpliveamount, strikeprice, optionsdata, ddlExitoptsdata, ddlSToptsdata); }, error: function ajaxError(data) { alert(data.status + ' : ' + data.statusText); } }); }) } function AddTableRowsToTable(initialsymbal, inst, exdate, lsize, delta, ltp, sprice, optionsdata, ddlExitoptsdata, ddlSToptsdata) { //adding the dropdownlist ot variable var ddlExit = "" + ddlExitoptsdata + ""; var trd = ""; trd += ""; trd += ""; trd += ddlExit; // dynamically adding the dropdownlist to jquery table trd += ""; trd += " "; trd += " "; trd += " "; trd += " "; trd += ""; $("#EntryParametersTableRightDataID tbody").append(trd); } }Tôi đã tạo ddlexitchange(txt) cho tùy chọn mà tôi đang chọn dựa trên tùy chọn đó, các giá trị sẽ tắt/bật
function ddlexitchange(txt) { //alert(txt); if (txt != undefined) { if (txt.toLowerCase() == "sq off leg") { //$("td:eq(2)").prop("disabled", true); //This functionality is not working //$("td:eq(2) input").prop("disabled", false); // Not working also $("td:eq(2)").prop("disabled", true); //in this 2 place I want to pass the dynamic index value of textbox like show in image(textbox) } else { $("td:eq(2)").prop("disabled", false); } }Và tôi đã thử logic này, cũng không hoạt động tốt
________số 8_______Và ở đây tôi đang gọi hàm ddlexitchange(txt) này ở điều khiển thả xuống là onchange='ddlexitchange(this.value);'. Bằng cách sử dụng chức năng này, giá trị đã chọn sẽ đến chính xác (tại mỗi hàng)
Ghi chú. - Yêu cầu của tôi là nếu tôi thay đổi bất kỳ giá trị nào trong danh sách thả xuống dựa trên giá trị TextBox sẽ tắt hoặc bật riêng trong từng hàng
Hình ảnh Ví dụ là. -
Hình ảnh trên cho chúng tôi biết nếu tôi chọn None Tất cả TextBox phải ở chế độ tắt (không thể chỉnh sửa) và nếu tôi chọn bất kỳ TextBox nào khác thì sẽ được bật (tại mỗi hàng [ và chúng tôi có thể thêm n số hàng ==> đây là 2])