表格为空时发出警报

时间:2012-02-29 08:45:55

标签: javascript forms

如何检查整个表单是否为空并提醒它?即使有几个空输入,表单也应该能够发送。

修改: 也许我应该说它假设是JavaScript或jQuery。

更好的描述: 我有一个表单,其中一个部分包含10个输入字段,您只需要填写一个。 另一部分你只需填写姓名,电话或电子邮件,但它是4个字段,你可以填写信息。 最后一个复选框,确保用户知道他或她没有填写整个表格。

我知道如何检查所有字段并在一个空的时候发出警报。但我不知道的是如何检查整个表格是否为空并提醒它。

5 个答案:

答案 0 :(得分:2)

这是使用纯JavaScript的快捷方式:

function checkForm​(oForm) {
    for (var i = 0; i < oForm.elements.length; i++) {
        if (GetElementValue(oForm.elements[i]).length > 0)
            return true;
    }
    alert("all empty");
    return false;
}

function GetElementValue(element) {
    if ((element.type === "checkbox" || element.type === "radio") && element.checked === false)
        return "";
    return element.value;
}

Live test case

答案 1 :(得分:1)

在JS中创建这样的验证方法(为其他表单元素扩展Switch,如radio或checkbox输入):

function validateForm(domForm) {
    var elements = domForm.elements;
    var hasData = false;

    var isAEmptyString = function(string) {

        if(string) {
            return string.length() == 0;
        }

        return true;
    };


    for(var i = 0; i < elements.length; i++) {
        var element = elements[i];
        switch(element.tagName.toLowerCase()) {
            case 'textarea':
                if(!isAEmptyString(element.innerHTML)) {
                    return true;
                }
                break;
            case 'input':
                if(!isAEmptyString(element.value)) {
                    return true;
                }
                break;
            case 'select':
                if(element.selectedIndex >= 0) {
                    return true;
                }
                break;
        }
    }
    return false;
};

您可以在表单上的“提交处理程序”

中调用它
<form onsubmit="return validateForm(this);">
<textarea name="a"></textarea>
<input type="text" name="b"></input>
<select name="c">
    <option value=1>1</option>
    <option value=2>2</option>
    <option value=3>3</option>
</select>
<input type="submit" />
</form>

答案 2 :(得分:1)

  

我知道如何检查所有字段并在一个空的时候发出警报。但我不知道的是如何检查整个表格是否为空并提醒它。

如果是这种情况,只需在代码中添加布尔检查

var haveAnyErrorsTriggered = false;
// loop through fields and if any are empty change the haveAnyErrorsTriggered to true
// then
if(haveAnyErrorsTriggered){alert("One or more fields are empty.");}

如果你想检查整个表格是否为空,请执行相反的操作

var isAtLeastOneFieldFull = false;
// loop through fields and if any are not empty change the isAtLeastOneFieldFull to true
// then
if(!isAtLeastOneFieldFull){alert("all the fields are empty");}

答案 3 :(得分:0)

您正在谈论Javascript表单验证。创建一个Javascript函数(称为validateForm),用于验证表单中的字段,并在检测到错误时弹出警报。如果要提交表单,则应返回true;如果存在错误,则返回false。然后在HTML表单标记中添加子句onsubmit =“return validateForm()”,其中validateForm是函数的名称。

答案 4 :(得分:0)

也许我曾在this jsfiddle做过的表单字段监听器示例可以帮助您进一步提升?请注意,客户端验证永远不够。任何人都可以篡改你页面中的javascript,所以你总是要验证表单服务器端。