仅在所有必填字段已满时提交表单?

时间:2014-03-19 18:10:42

标签: javascript

我想做form.submit()但仅当所有具有required属性的表单项都已满时。

我正在考虑简单地遍历表单子项来搜索属性,但我不确定如何做,因为可能有嵌套元素等。并且可能有一种更简单的方法。

this.form_is_full = function(form){
    for (var i = 0; i < form.elements.length; i++){
        if(form.elements[i].getAttribute("required") && form.elements[i].value=="")
        {
        // If has attribute required and is blank return false
        }
    }
    return true;
}

我该怎么做?

3 个答案:

答案 0 :(得分:0)

试试这个:

$('#YourFormId').submit(function(e) {
    if ($.trim($("#YourFormId input").val()) === "") {
        e.preventDefault();
        alert('you did not fill out one of the fields');
    }
});

答案 1 :(得分:0)

function Validate()
        {


        // create array containing textbox elements
        //for example:
        var inputs = [document.getElementById('fname'), 
        document.getElementById('lname'), document.getElementById('email'), 
        document.getElementById('messagetxt')];

        var error;

        for(var i = 0; i<inputs.length; i++)
        // loop through each element to see if value is empty
        {
            if(inputs[i].value == '')
            {
                error = 'Please complete all fields.';
                alert(error);
                return false;
                }
        }
     }

答案 2 :(得分:0)

这就是我所做的:

this.validate_form = function(form){
    for (var i = 0; i < form.elements.length; i++){
        if(form.elements[i].value == "" && form.elements[i].getAttribute("name") && form.elements[i].hasAttribute("required"))
        {
            return false;
        }
    }
    return true;
}