Javascript :在不刷新页面的情况下重新初始化全局变量



我有一个页面,其中包含带有菜单的表单字段。 单击按钮时,应验证表单域,错误应显示在模式窗口的一行表格中。

我已经声明了一个全局变量来捕获不同字段的错误。全局变量是一个字符串,错误被添加为行,如下所示

首先我初始化一个全局变量 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);
    });
}

上面的代码假定您有一个方法来验证输入,并且它返回一组错误。

相关内容

  • 没有找到相关文章

最新更新