使用$('#DivId')。html('')清除div?

时间:2013-12-23 12:26:53

标签: jquery asp.net-mvc-3

我在该网页上有一个网页和一个网页,有一个“添加”按钮,提供用户使用弹出窗口向该网格添加更多记录的选项,每个行上还有“编辑”选项。 webgrid以及“添加”和“编辑”弹出窗口的字段和模型属性是相同的......

我使用jquery对字段进行了一些验证,如果所有字段都包含一些数据,则只有“添加”和“编辑”弹出窗口中的“保存”按钮才会启用,如果任何字段为空,则保存按钮将被禁用

问题是当用户打开“添加记录”弹出窗口并关闭弹出窗口而不输入任何数据时,然后当他打开“编辑记录”弹出窗口时,即使在包含所有字段后,“保存”按钮也被禁用。 ..

所以我只是在点击取消按钮时清除'AddUserDiv'

 $('#DivAddUser').html('');

这清除了上一个问题,但它创建了一个新问题,当我第二次打开“添加记录”弹出窗口时,空弹出窗口正在打开而且没有控件

当我刷新页面并单击“添加记录”弹出窗口时,所有内容都是第一次正常工作

2 个答案:

答案 0 :(得分:0)

您必须使用$('#elementID').val('');清除输入字段 如果您使用.html(''),它将清除该div中的html

答案 1 :(得分:0)

使用

清除HTML后
$('#DivAddUser').html('');

除非您为其指定新的HTML,否则它将保持清除状态,因此,正如预期的那样,之前的布局将不可见。

所以,你需要做的是清除/重置div中所有元素的值。

编辑:根据您的评论

在将上述清除功能调用为

之前,您可以将以前的HTML存储在变量中
previousHTML = $('#DivAddUser').html()
//should be done just once in the beginning

然后致电

$('#DivAddUser').html('');

然后显示'添加记录'弹出你设置

 $('#DivAddUser').html(previousHTML);

但请注意,这不是从HTML网页中清除值的正确方法。你应该写一个clear()函数,你应该在其中引用页面上的每个元素并明确地清除或设置默认值。