Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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
jQuery添加的HTML元素在回发时丢失_Jquery_Html_Asp.net - Fatal编程技术网

jQuery添加的HTML元素在回发时丢失

jQuery添加的HTML元素在回发时丢失,jquery,html,asp.net,Jquery,Html,Asp.net,我正在ASP.NET中开发一个简单的网页,我也使用jQuery。在我的页面上有一个表格,每行包含几个文本框。加载页面时,只有一行显示空文本框。现在,如果用户在最后一行中输入任何文本,我将使用jQuery在最后一行下面添加另一行。我只需克隆最后一行,重命名它,并使用“insertAfter”函数将其添加到表中。这样做很好,但存在两个问题: 当我使用按钮提交表单时,使用ASP.NET检查输入的有效性。如果有一些无效的输入,我会在每行的最右端显示一条错误消息。问题是,在这种情况下,jQuery添加的所

我正在ASP.NET中开发一个简单的网页,我也使用jQuery。在我的页面上有一个表格,每行包含几个文本框。加载页面时,只有一行显示空文本框。现在,如果用户在最后一行中输入任何文本,我将使用jQuery在最后一行下面添加另一行。我只需克隆最后一行,重命名它,并使用“insertAfter”函数将其添加到表中。这样做很好,但存在两个问题:

当我使用按钮提交表单时,使用ASP.NET检查输入的有效性。如果有一些无效的输入,我会在每行的最右端显示一条错误消息。问题是,在这种情况下,jQuery添加的所有行都会丢失并消失,包括文本框的所有内容。这个问题有什么解决办法吗? 页面加载后,“提交”按钮位于第一行的正下方。如果我使用jQuery向表中添加一行,那么按钮将被表覆盖。我能做些什么来防止这种行为?
问题1之所以发生,是因为您的验证是服务器端的,并且是用C编写的,而不是客户端。因为您使用jQuery动态地向页面添加对象,所以用于验证的C.net代码不知道这些对象是什么,因此在回发完成验证时,这些对象将被删除

解决方案是提取所有验证客户端并在jQuery中执行。例如,您可以使用验证插件


第二个问题是CCS问题。您应该将表和按钮拆分,并将它们放在单独的div标记中。然后,当表格的大小在其容器内增加时,另一个带有按钮的容器会被按下屏幕,而不是被覆盖

我现在解决了这个问题。我的解决方案是使用AJAX并调用一个ASP.NET Web服务,该服务进行如下所述的验证:

问题2是由表的绝对位置引起的,但现在已经解决了。我知道第一个问题的原因,但在我看来,验证客户端输入不是一个好主意,也是一种反模式。