gpt4 book ai didi

javascript - 客户端 javaScript 来切换回发时反转的下拉列表效果?

转载 作者:行者123 更新时间:2023-11-30 06:08:49 25 4
gpt4 key购买 nike

我有以下 JavaScript 来切换 ASP.NET 页面中的下拉列表,当我单击按钮时会调用它。我有 4-5 个下拉列表/切换按钮对。每个切换按钮都会切换关联下拉列表上的启用/禁用属性。

function toggleDisableDropDown(dropDownID) {
var element = document.getElementById(dropDownID); // get the DOM element

if (element) { // element found
element.disabled = !element.disabled; // invert the boolean attribute
}

return false; // prevent default action
}

但是我的下拉列表之一每次都需要进行回发。我选择了一个项目来填充另一个下拉列表,我注意到在这个回传中我所有其他被 javascript 禁用的下拉列表(用户点击这些下拉列表的切换按钮)被启用。

这里发生了什么?我该如何解决?

最佳答案

Javascript DOM 操作与控件在服务器上的保存状态无关。服务器上的控件状态不知道在客户端更改下拉列表上的启用属性。

回发使用控件的最后已知状态重新创建下拉列表。如果您想让它们使用客户端上的最后状态重新呈现,您还需要发布一些客户端跟踪信息。您可以在隐藏字段中跟踪每个下拉列表的客户端状态,并使用来自这些隐藏字段的发布值来更新服务器上下拉列表的 Enabled 属性。

//Html
<input type="hidden" name="_trackingDropdown1" value="true" />

//Client Javascript
function toggleDisableDropDown(dropDownID) {
var element = document.getElementById(dropDownID); // get the DOM element
var trackingField = document.getElementById("_tracking" + dropDownID);

if (element) { // element found
element.disabled = !element.disabled; // invert the boolean attribute
trackingField.value = element.disabled;
}

return false; // prevent default action
}

//On Server during postback handling
if (Request.Params["_trackingDropDown1"] != null)
{
bool.TryParse(Request.Params["_trackingDropDown1"], out DropDownList1.Enabled);
}

关于javascript - 客户端 javaScript 来切换回发时反转的下拉列表效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1986569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com