2

我正在处理包含多视图控件和一些向导步骤的 asp.net 页面。我有十对名为 TextboxA[i] 和 TextBoxB[i] 的文本框和一个计数器。Foreach 几个非空文本框我想要我的计数器++。

在服务器端,我可以在 TextboxA[i] 和 TextboxB[i] onTextChange 事件中编写类似的内容

if(String.IsNullOrWhiteSpace(TextboxA[i]))
    counter++;

不太好......我必须使用javascript在客户端增加计数器但是 - 如果我有 - 我不知道如何。请问,谁能帮帮我?

4

2 回答 2

0

首先,您需要将 ID 提供给文本框。像

TextboxA[i].ID = "textboxA" + i;
TextboxB[i].ID = "textboxB" + i;

然后使用从客户端访问这些文本框

var TextboxA = document.getElementById("textboxA" + i);
var TextboxB = document.getElementById("textboxB" + i);
if((TextboxA.value == null || TextboxA.value=="" )&&(TextboxB.value == null || TextboxB.value=="" ))
counter++;
于 2012-08-20T08:51:22.293 回答
0

客户端代码:

<script type="text/javascript">
var counter = 0;

function increaseCounter(textAID, textBID)
{
    var textA = document.getElementById(textAID);
    var textB = document.getElementById(textBID);
    if (isNullOrWhitespace(textA.value) && isNullOrWhitespace(textB.value))
        counter++;
}

function isNullOrWhitespace( input ) {

    if (input == null) return true;

    return input.replace(/\s/g, '').length < 1;
}
</script>

isNullOrWhitespace 的代码取自https://stackoverflow.com/a/5559461/1495902

服务器端代码:

for (int i = 0; i < TextboxA.Count() ; i++)
{
    var script = "increaseCounter(" + TextboxA[i].ClientID + "," + TextboxB[i].ClientID + ")";
    TextboxA[i].Attributes.Add("onchange", script);
    TextboxB[i].Attributes.Add("onchange", script);
}
于 2012-08-20T09:33:58.957 回答