如何检查所有文本框(包括动态添加的)是否为空?

时间:2013-12-16 19:34:14

标签: javascript textbox dynamically-generated

在我的表单中,onsubmit要求返回值形成三个不同的函数。一个函数应检查具有某个类的文本框是否为空。在我的表单中,我可以添加与已经复制的文本框相同的文本框。当我添加这样一个文本框时,该函数似乎只检查最后添加的文本框,因为当我提交表单时,即使第一个文本框为空,它也会提交。

当我不添加任何文本框时,会检查第一个文本框...所以问题只出在我添加文本框时。

当有人可以帮助我时,我将不胜感激!提前谢谢!

这是我的代码:

            function legedienst()
            {
                var omschrijvingen = document.getElementsByClassName('omschrijving');
                var valid = true;

                for (var i=0; i < omschrijvingen.length; i++)
                {
                    if (omschrijvingen[i].value == '')
                    {
                        document.getElementById('error').innerHTML = 'Vul alle diensten in a.u.b.';
                        valid = false;
                    }
                }

                return valid;
            }

以下是创建和删除动态文本框的代码。 “bereken()”只是一个被调用来计算某些值的函数。

        // dienst toevoegen
            var linenumber = 0;
            addLine = function()
            {
                linenumber++;
                $('#dienst').append('<tr><td><input name="dienstomschrijving[]" type="text" style="width: 200px;" class="omschrijving" /></td><td><input name="prijs" class="prijs" type="text" style="width: 100px;" /></td><td><input name="verwijder_dienst" type="button" value="Verwijder dienst" onclick="delLine(this)" /></td></tr>');
                bereken();
            }

        // dienst verwijderen
            delLine = function(line)
            {
                $(this).closest('tr').remove();
            };

2 个答案:

答案 0 :(得分:0)

我看到你正在使用jQuery。试试这种方式。

function legedienst() {
  $('tr td. omschrijving').each(function(){
    if($(this).val().length==0){
      return false;
    }
  });
  return true;
}

答案 1 :(得分:0)

您的函数legedienst,用于验证具有class ='omchrijving'的文本框是正确的。在delLine函数中将“this”更改为“line”,它也可以工作。

$(line).closest('tr').remove();

我不认为你身边有什么问题。您可以使用工作演示:http://jsfiddle.net/FkGb7/