每次从 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 弹出窗口中读取相同的文本框值的主要内容,如果未能解决你的问题,请参考以下文章
在按钮单击文本框值是空的使用 asp.net mvc 显示警报?