在javascript中使用for循环遍历文本框值

时间:2013-07-09 14:53:51

标签: javascript

如果所有texbox都没有值,我有一个小程序来阻止服务器端操作。 我想为texbox指定一种颜色,以防万一没有添加值。

这不符合我的预期。

var txtName = document.getElementById("MainContent_txtName").value;
var txtSurname = document.getElementById("MainContent_txtSurname").value;
var txtContact = document.getElementById("MainContent_txtContactNumber").value;
var txtEmail = document.getElementById("MainContent_txtEmail").value;
var txtMessage = document.getElementById("MainContent_txtMessage").value;

var fields = new Array(txtName, txtSurname, txtContact, txtEmail, txtMessage);
var tot = 0;
for (var i = 0; i < fields.length; i++) {

    if (fields[i] == "") {
        fields[i].style.backgroundcolor = '#FEF5CA';
        tot++;
    }
    else {
        fields[i].style.backgroundcolor = "white";
    }

}
if (tot > 0) {
    return false;
}
return true;

问候

2 个答案:

答案 0 :(得分:5)

问题是你正在创建一个值数组,你需要元素本身:

var txtName = document.getElementById("MainContent_txtName");
var txtSurname = document.getElementById("MainContent_txtSurname");
var txtContact = document.getElementById("MainContent_txtContactNumber");
var txtEmail = document.getElementById("MainContent_txtEmail");
var txtMessage = document.getElementById("MainContent_txtMessage");

var fields = [txtName, txtSurname, txtContact, txtEmail, txtMessage];
var tot = 0;
for (var i = 0; i < fields.length; i++) {

    if (fields[i].value == "") {
        fields[i].style.backgroundColor = '#FEF5CA';
        tot++;
    }
    else {
        fields[i].style.backgroundColor = "white";
    }

}
if (tot > 0) {
    return false;
}
return true;

您必须将backgroundcolor更改为backgroundColor并将.value添加到if检查中。

答案 1 :(得分:2)

尝试style.backgroundColor而不是style.backgroundcolor(注意大写字母“C”)Javascript区分大小写。