gpt4 book ai didi

c# - jQuery .load 似乎在意想不到的地方运行

转载 作者:行者123 更新时间:2023-11-29 16:30:10 26 4
gpt4 key购买 nike

所以我正在尝试从 .aspx 页面加载一些返回的 html,但是在执行 AJAX 请求所依赖的某些操作之前需要触发点击事件。更具体地说,我正在这样做。当用户在文本字段中键入时,此函数将运行...

function KeyPress() {
$("#" + HiddenButtonId).click();
$("#test").load("TempJumpToAJAX.aspx");
}

然后 $("#"+ HiddenButtonId).click();确实在代码隐藏文件中设置了一些 session 数据。具体...

Session["SearchText"] = Search.Text;

然后,$("#test").load("TempJumpToAJAX.aspx");调用返回新建选择框的 .aspx 页面...

        Response.Expires = -1;

StringBuilder builder = new StringBuilder();


builder.Append("<select id=\"testListId\" name=\"testList\" size=\"4\" style=\"width:200px;\">");
builder.Append("<option>");
builder.Append(Session["SearchText"]);
builder.Append("</option>");
builder.Append("</select>");

Response.ContentType = "text/HTML";
Response.Write(builder.ToString());
Response.End();

问题是,顺序似乎搞砸了,它首先尝试附加 Session["SearchText"],然后运行点击事件运行的代码。所以它的功能更像这样......

function KeyPress() {
$("#test").load("TempJumpToAJAX.aspx");
$("#" + HiddenButtonId).click();
}

命令颠倒的地方。所以实际上发生的是 session 变量有一个空字符串,而不是用户在文本框中键入的内容。对我来说奇怪的是它似乎不应该有一个空字符串,它似乎应该没有任何东西,因为此时 session 变量还没有被初始化为任何东西。我真的不知道发生了什么。我猜是因为缺乏经验。有什么想法吗?

最佳答案

您在这里混合技术。 hiddenButtonID click 事件试图对页面进行完整的回发,而 AJAX 调用不会进行回发。没有理由进行回发,然后通过 AJAX 调用跟进。 AJAX 的要点是消除回发页面的需要,而只是使用对服务器的小回调在页面上重新加载少量 HTML。您应该在 AJAX 调用参数中将该数据传递给服务器,而不是访问 HiddenButtonID 单击事件处理程序中的搜索文本框文本。

以下客户端脚本应该执行此操作。


function KeyPress() {
$("#test").load("TempJumpToAJAX.aspx", {searchText: $("#").val()});
}

在此代码中,您将获取搜索文本框的 ID,然后使用 jQuery 检索该文本框的值。这将作为名为“searchText”的 POST 变量传递到 TempJumpToAJAX.aspx 页面。您应该能够通过访问“TempJumpToAJAX.aspx”页面中的 Request['searchText'] 变量来访问此数据。

关于c# - jQuery .load 似乎在意想不到的地方运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/394504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com