gpt4 book ai didi

javascript - 为什么我的 no-submit (HtmlButton) 仍然提交?

转载 作者:行者123 更新时间:2023-12-03 09:48:28 25 4
gpt4 key购买 nike

我想动态地使行一直存在,但最初是隐藏的,可见。

我尝试过客户端(jQuery)路线,但遇到了问题。

我更喜欢走服务器端(C#)道路,并且我认为我已经找到了基于 this thread 来完成它的方法。和这段代码:

HtmlButton btnAddFoapalRow = null;
. . .
btnAddFoapalRow = new HtmlButton();
btnAddFoapalRow.Attributes["type"] = "button";
btnAddFoapalRow.InnerHtml = "+";
btnAddFoapalRow.ID = "btnAddFoapalRow";
btnAddFoapalRow.ServerClick += new EventHandler(btnAddFoapalRow_Click);
this.Controls.Add(btnAddFoapalRow);

private void btnAddFoapalRow_Click(object sender, EventArgs e)
{
try
{
ShowNextFoapalRow();
}
catch (Exception ex)
{
String s = String.Format("Exception occurred: {0}", ex.Message); // TODO: Log this somewhere
}
}

//// This only works the first time, because it causes the page to be reloaded, setting foapalRowsShowing back to 2
private void ShowNextFoapalRow()
{
switch (foapalRowsShowing)
{
case 2:
foapalrow3.Visible = true;
foapalRowsShowing = 3;
break;
case 3:
foapalrow4.Visible = true;
foapalRowsShowing = 4;
btnAddFoapalRow.Disabled = true;
break;
}
}


foapalrow3 = new HtmlTableRow();
foapalrow3.ID = "foapalrow3";
foapalrow3.Visible = false;
. . .
foapalrow3 = new HtmlTableRow();
foapalrow3.ID = "foapalrow3";
foapalrow3.Visible = false;

...但不行 - 第一次使第二行可见,但随后混合“+”HtmlButton 不会使第三行可见。逐步浏览代码,我明白了原因:每次我按下按钮时都会提交页面,因此初始代码会再次运行,将可见行数设置回两行,并且始终使row3 可见(绝不是 row4)。

这就是混搭按钮后的样子,无论我混搭按钮多少次(应该再添加一行,但事实并非如此):

enter image description here

顺便说一句,第 1 行是列标题行;第 2 行是默认可见的单行; row3 和 row4 存在,但一开始不可见。

最佳答案

尝试使用

btnAddFoapalRow.Attributes.Add("onclick", "return false;");

关于javascript - 为什么我的 no-submit (HtmlButton) 仍然提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30947889/

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