在我的表单中,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();
};
答案 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/