Javascript:重新初始化全局变量而不刷新页面

时间:2016-06-11 07:37:35

标签: javascript initialization global-variables

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

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

首先我初始化一个全局变量var gErrorTableRow ="&#34 ;;

相同的变量会根据特定字段名称的错误继续附加表格行,如下所示。

gErrorTableRow += '<tr><td>'+sFieldName+'</td><td>Enter Non Zero Value</td></tr>';

在单击按钮时,表格行将显示在“模态”窗口中。

但是变量gErrorTableRow即使在我重新初始化if变量&#39; gErrorTableRow =&#34;&#34;之后也会一次又一次地附加错误。 ;&#39;在模态窗口显示之后,单击按钮。

如何在不刷新页面的情况下重新初始化此gErrorTableRow变量。

我根据评论进行了编辑,希望我现在很清楚。

3 个答案:

答案 0 :(得分:2)

您只需运行代码,为其指定一个新值,例如:

gErrorTableRow = "";

答案 1 :(得分:0)

似乎问题出在以下行中的+

+运算符也可用于添加(连接)字符串。

gErrorTableRow += '<tr><td>'+sFieldName+'</td><td>Enter Non Zero Value</td></tr>';

你可以简单地尝试

 gErrorTableRow = '<tr><td>'+sFieldName+'</td><td>Enter Non Zero Value</td></tr>';

答案 2 :(得分:0)

而不是全局变量,直接将错误添加到其容器中。当用户单击该按钮时,清空容器并再次重新插入所有验证错误。

这样的事情:

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);
    });
}

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