每次从 jquery 弹出窗口中读取相同的文本框值

Posted

技术标签:

【中文标题】每次从 jquery 弹出窗口中读取相同的文本框值【英文标题】:Reading same textbox value each time from jquery popup 【发布时间】:2021-07-01 15:32:33 【问题描述】:

我有一个带有文本框的 JQuery Popup。在 Checkbox 的 OnClick 事件上触发 JQuery Popup。

HTML

<div id="popupdiv" title="Basic modal dialog" style="display: none"> Enter Password
<asp:TextBox ClientID="pass" ClientIDMode="static" runat="server" class="textcss" ></asp:TextBox></div>
<div id="DiscountEnd" style="display: none"></div> 
                    
<asp:CheckBox ID="DiscountAtEnd" Text="Offer Discount" style="margin-left:10px;float:left;margin-top:3px;padding-right:27px; " ForeColor="#008269" Font-Bold="false" runat="server" AutoPostBack="True" OnClick="return DiscountAtLast(this);"/>                        
<asp:Button ID="btnDiscountAtEnd" runat="server" style="display:none;" Text="Button" OnClick="btnDiscountAtEnd_Click" />

我的工作是在服务器端 C# 代码中接收文本框值并使用其他 jquery 弹出窗口显示它

服务器端代码 C#

string discountEnd = Request.Form["discount_end"];    
ScriptManager.RegisterStartupScript(this, this.GetType(), "p", "<script>MessageBox('" + discountEnd + "');</script>", false);

问题

我的服务器端代码可以接收 JQuery 弹出文本框值,但每次我得到与页面加载后第一次输入的值相同的值。我认为有一些变量初始化但无法弄清楚

JQuery

 function DiscountAtLast(chk) 
    $(function () 
        var discount_end = document.createElement("INPUT");
        discount_end.type = "hidden";
        discount_end.name = "discount_end";

        if (chk.checked) 
             
            $("#popupdiv").dialog(
                title: "Login Info",
                resizable: false,
                height: "auto",
                width: 400,
                buttons: 
                    Cancel: function () 
                        $(this).dialog("close");
                        discount_end.value = $("[id*=pass]").val();
                        document.forms[0].appendChild(discount_end);

                        return false;

                    ,
                    Ok: function () 
    
                        $(this).dialog("close");
                        discount_end.value = $("[id*='pass']").val()
                        document.forms[0].appendChild(discount_end);
                          
                        __doPostBack('<%=btnDiscountAtEnd.UniqueID%>', "");

                        return true;

                    
                
            );
        
    );      

要求

在服务器端 C# 接收的值应与每次文本框输入值相同

【问题讨论】:

【参考方案1】:

我没有初始化我的对话框,即popupdiv

$("[id*=popupdiv]").empty();放在JQuery Script的return语句之前

【讨论】:

以上是关于每次从 jquery 弹出窗口中读取相同的文本框值的主要内容,如果未能解决你的问题,请参考以下文章

如何从剧作家那里读取文本框值

使用jQuery将输入文本显示为div弹出窗口

PHP不发布由jQuery生成的文本框值

如何在jquery自动完成中传递文本框值

在客户端分配的 ASP 文本框值未出现在回发中

在jquery中更改另一个文本框时动态设置一个文本框值