Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript asp:隐藏无法在代码隐藏中访问_Javascript_Jquery_Asp.net_Vb.net - Fatal编程技术网

Javascript asp:隐藏无法在代码隐藏中访问

Javascript asp:隐藏无法在代码隐藏中访问,javascript,jquery,asp.net,vb.net,Javascript,Jquery,Asp.net,Vb.net,我对jQuery和asp.net(VB)几乎没有经验 我试图实现的是: 1.我的页面有几个文本框,一个包含三个标签的面板,一个GridView和一个HiddenField 2.页面加载时隐藏面板 3.在页面上,用户单击文本框内部,然后按F2键 4.jQuery感测F2键并提取文本框类和值 5.此外,HiddenField/HiddenBoxID值设置为textbox类 6.触发按钮的单击事件 7.现在在代码隐藏中提取隐藏的值并进行进一步处理 8.使面板可见 我的jQuery如下所示: // Ex

我对jQuery和asp.net(VB)几乎没有经验

我试图实现的是:
1.我的页面有几个文本框,一个包含三个标签的面板,一个GridView和一个HiddenField
2.页面加载时隐藏面板
3.在页面上,用户单击文本框内部,然后按F2键
4.jQuery感测F2键并提取文本框类和值
5.此外,HiddenField/HiddenBoxID值设置为textbox类
6.触发按钮的单击事件
7.现在在代码隐藏中提取隐藏的值并进行进一步处理
8.使面板可见

我的jQuery如下所示:

// Extract TextBox ID and Text Value
var currentClass = $(this).attr('Class');
var currentVal = $('.' + currentClass + '').val();
$('#HiddenBoxID').val(currentClass);
$("#helpButton").trigger('click');
Dim HuntBoxID As String
HuntBoxID = HiddenBoxID.Value
我的帮助按钮代码如下所示:

// Extract TextBox ID and Text Value
var currentClass = $(this).attr('Class');
var currentVal = $('.' + currentClass + '').val();
$('#HiddenBoxID').val(currentClass);
$("#helpButton").trigger('click');
Dim HuntBoxID As String
HuntBoxID = HiddenBoxID.Value
问题是,当面板设置为visible=true时,我可以从jquery获取HiddenBoxID值以进行代码隐藏,但当我将面板设置为visible=false时,我无法将值从jquery发送到代码隐藏。我不知道为什么?我使用的是chrome浏览器,在调试控制台(F12)中,我可以看到currentClass和currentVal中设置的值。
有人能告诉我如何实现上述目标。

还有谁能告诉我我做错了什么,一些代码示例将非常有用。

当您将控件的
Visible
属性设置为false时,该控件的HTML标记都不会发送到客户端。就客户而言,该控制不存在。您可以通过在客户端上查看HTML源代码进行验证

使用CSS样式,而不是操纵
Visible
属性。这里是C#,但VB.NET语法应该类似:

HiddenBoxID.Style.Add("display", "none");
当您使用CSS样式操作它时,标记仍将发送到客户端,因此您可以稍后使用客户端代码显示元素。例如,使用jQuery:

$('#HiddenBoxID').show();

我已经有一段时间没有做您提到的事情了,特别是使用客户端javascript/jQuery。。。但是我猜您无法获取客户端ID,因为asp.net甚至没有将控件发送到客户端,因为它是visible=false

我可能完全错了。。。但是当你说你立即隐藏了页面加载的面板…我想你是在代码隐藏中做服务器端,对吗?也许可以尝试将其设置为隐藏在jQuery中。换句话说,确保控件被发送到客户端,然后使用jQuery立即隐藏它


另一件要注意的事情是点击F12,看看你隐藏的html在客户端的源代码中是否可见。如果不是,则asp.net甚至不会将控件发送到您的客户端,因此您无法获取客户端ID。

我尝试使用asp:面板执行相同的操作,首先在页面加载时显示:无(在aspx中),然后,当页面加载完成时,我在文本框内单击,然后调用jQuery函数,尝试在其中执行display:block,在代码隐藏中也做了同样的事情。这样做的结果是,我在jQuery中获得了textbox类和textbox值,但当我在代码中访问它时,它显示为空。@Abb这可能与此无关,可能是由于您加载页面的方式。很难说,因为你没有提供答案。