我有一个页面,其中包含带有菜单的表单字段。 单击按钮时,应验证表单域,错误应显示在模式窗口的一行表格中。
我已经声明了一个全局变量来捕获不同字段的错误。全局变量是一个字符串,错误被添加为行,如下所示
首先我初始化一个全局变量 var gErrorTableRow = ";
相同的变量根据特定字段名称的错误将 get 附加到表行,如下所示。
gErrorTableRow += '<tr><td>'+sFieldName+'</td><td>Enter Non Zero Value</td></tr>';
单击按钮时,表格行将显示在模态窗口中。
但是变量gErrorTableRow
一次又一次地附加错误,即使在我重新初始化 if 变量 'gErrorTableRow = " ;' 后模态窗口显示,单击按钮。
如何在不刷新页面的情况下重新初始化此gErrorTableRow
变量。
我根据评论进行了编辑,希望我现在清楚了。
您只需运行代码为其分配一个新值,例如:
gErrorTableRow = "";
似乎问题出在以下行中的+
+ 运算符也可用于添加(连接)字符串。
gErrorTableRow += '<tr><td>'+sFieldName+'</td><td>Enter Non Zero Value</td></tr>';
您可以简单地尝试
gErrorTableRow = '<tr><td>'+sFieldName+'</td><td>Enter Non Zero Value</td></tr>';
而不是全局变量,而是直接将错误添加到其容器中。当用户单击该按钮时,清空容器并再次重新插入所有验证错误。
像这样:
function onButtonClick() {
var errorContainer = $('#error-container');
$(errorContainer).empty();
var errors = validateInput();
$.each(errors, function (index, error) {
var row = $(document.createElement('tr'));
var fName = $(document.createElement('td'));
$(fName).text(sFieldName);
var eText= $(document.createElement('td'));
$(eText).text(error.Text);
$(row).append(fName);
$(row).append(eText);
$(errorContainer ).append(row);
});
}
上面的代码假定您有一个方法来验证输入,并且它返回一组错误。