旧版ASP.NET 1.1与jQuery集成问题

旧版ASP.NET 1.1与jQuery集成问题,asp.net,jquery,vb.net,asp.net-1.1,Asp.net,Jquery,Vb.net,Asp.net 1.1,我正在为ASP.NET 1.1开发一个用VB.NET编写的传统web应用程序。一个特定页面有一个包含多个字段的表单。作为对下拉框更改值的响应,我正在清除一些字段,将一些下拉框重置为第一个选项,并在UI中将它们全部设置为“禁用”。为此,我使用jQuery。我向所有这些字段添加了一个CSS类,然后我的jQuery选择器如下:$(“*.myCSS类”)。下面是一些要解释的示例代码 var fields = $("*.fields"); if (some_condition) { fields.

我正在为ASP.NET 1.1开发一个用VB.NET编写的传统web应用程序。一个特定页面有一个包含多个字段的表单。作为对下拉框更改值的响应,我正在清除一些字段,将一些下拉框重置为第一个选项,并在UI中将它们全部设置为“禁用”。为此,我使用jQuery。我向所有这些字段添加了一个CSS类,然后我的jQuery选择器如下:$(“*.myCSS类”)。下面是一些要解释的示例代码

var fields = $("*.fields");
if (some_condition) {
    fields.val("");
    fields.attr("selectedIndex", 0);
    fields.attr("disabled", "disabled");
}
UI会按照预期更新,以响应上面的js代码,但是当我响应按钮单击返回页面时,原始值仍然保留在与这些控件相关的服务器端。例如,txtSomething是带有CSS类“fields”的字段之一(因此将由上面的jQuery选择器选择)。用户在此文本框中键入“1234”并提交表单。要么将同一页面发回自身并保留其值,要么返回此页面并在服务器端预填充值(例如,用户单击摘要页面上的编辑按钮),以便在客户端上使用值“1234”初始化控件txtsothing。我的jQuery代码将清除用户在UI中看到的值,然后用户单击submit按钮。如果使用jQuery选择器查询该值,则该字段的值为空字符串。当页面发回时,我正在单步执行代码(或使用此控件的值执行某些操作),它仍然是“1234”


非常重要的一点是,这些值在提交一次后将发送回浏览器。因此,想象一个正在提交的表单,或者在服务器端绑定或设置这些值并输出到预先填充的浏览器(而不是使用默认值或空值输出到浏览器)的任何情况。如果我默认加载页面(空文本框),输入一些文本,然后触发js函数清除这些字段,那么我键入的值永远不会进入服务器。

为什么需要禁用这些字段?禁用控件会使它们无法将值发布到服务器。。。至少在服务器端禁用asp.net控件时会发生这种情况


更新1:不能怀疑它是否只是服务器端,所以我查了一下:)。。。“在本例中,INPUT元素被禁用。因此,它无法接收用户输入,其值也不会随表单一起提交。”,因此我是对的,即使在客户端禁用它,它也不会发布值

我没有在服务器端禁用它们。我正在客户端上禁用它们,这样用户就无法选择或在其中键入值。非常好…谢谢。我使用了“readonly”而不是“disabled”,这些值现在被发送到服务器。我现在唯一的问题是“readonly”在下拉列表中不起作用,所以我要么找到一个等效的attr,要么在服务器上为所选内容执行一些难看的手动操作。又是Thx