Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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 当出现post bock with Jquery对话框时,asp.net文本框值为空_Javascript_Jquery_Html_Asp.net_Textbox - Fatal编程技术网

Javascript 当出现post bock with Jquery对话框时,asp.net文本框值为空

Javascript 当出现post bock with Jquery对话框时,asp.net文本框值为空,javascript,jquery,html,asp.net,textbox,Javascript,Jquery,Html,Asp.net,Textbox,我在标签中有Asp.net文本框,点击“btnReply”后,通过Jquery对话框显示,所以用户在文本框中写下想法,然后点击“发送”按钮(Jquery对话框按钮)并发回 但服务器端的asp.net文本框值为空。为什么? 我的代码在这里: <div id="ReplyDiv" style="display:none;"> <asp:TextBox ID="txtReply" runat="server" Textmode="MultiLin

我在
标签中有Asp.net文本框,点击“btnReply”后,
通过Jquery对话框显示,所以用户在文本框中写下想法,然后点击“发送”按钮(Jquery对话框按钮)并发回

但服务器端的asp.net文本框值为空。为什么? 我的代码在这里:

     <div id="ReplyDiv"  style="display:none;">
             <asp:TextBox ID="txtReply" runat="server" Textmode="MultiLine"/>
     </div>

     <input type="button" id="btnReply" onclick="javascript:retuen ShowReplyDialog();"/>

      <asp:Button ID="AspBtnReply" runat="server" OnClick="AspBtnReply_Click" class="hidden"/>

     /*-----Jquery script----*/
    <script type="text/javascript">
      function ShowReplyDialog()
       {
         $("#ReplyDiv").dialog({
            width: 580,          
            buttons: {
               "Close": function () { $(this).dialog("close");} , 
               "Send" : function () {
                   //----Call Asp.net server method here
                   $("#<%=AspBtnReply.ClientID %>").click();
               }                    
            }
         }).parent().appendTo($("form:first"));
      }
    </script>

/*-----Jquery脚本----*/
函数ShowReplyDialog()
{
$(“#ReplyDiv”)。对话框({
宽度:580,
按钮:{
“Close”:函数(){$(this).dialog(“Close”);},
“发送”:函数(){
//----在此处调用Asp.net服务器方法
$(“#”)点击();
}                    
}
}).parent().appendTo($(“格式:first”);
}

使用隐藏字段值存储文本框值

var Des = $("#txtDesc").val();
$("#hid").val(Des);

hid是隐藏字段的id。

经过大量搜索,我知道有一些原因:

  • 我可以解决它**Jquery UI对话框需要z-index样式**。我的意思是:

    <style>
     .ui-widget-overlay
     {
         z-index:0;
     }
    </style>
    
  • 我已经有一段时间没有使用UpdatePanel了,但我相信在部分回发时,它们只发送内部控件的更新值。因此,在UpdatePanel中移动文本框,或者在更新文本框时使用Javascript用文本框的上下文填充UpdatePanel中的隐藏控件

  • 要获取代码隐藏中输入的值并通过服务器控制机制(textBox.Text)访问它们,需要将它们的状态(和存在)保存在ViewState中。由于您是使用javascript构建它们的,它们的状态不会持久化,因此获取它们的值的唯一方法是使用Request.Form集合

  • 本期最佳提示如下:**

  • 对于禁用控件,最好的问题是:


  • 嗨,Aarif,我可以解决它,但我想知道为什么文本框值没有发送到服务器。!!!我也提出了你的解决方案,但完全不是你说的我的答案。ThanksjQueryUI在运行时删除所有文档对象,并将其放在DOM之外,此时您将无法访问任何对象。这是所有jQueryUI插件的默认行为。因此,你必须通过改变你使用它的方式来承受一些压力。
      $("#..").dialog(.....).parent().parent().appendTo($("form:first"));