Во-первых, я бы не использовал бы пробелы в ваших входных именах, так как тогда вам придется иметь дело со странными проблемами экранирования.Вместо этого используйте что-то вроде «QuantityAndDescription».
Кроме того, похоже, что вы пытаетесь создать несколько полей с одинаковым именем.Лучший способ сделать это - добавить скобки к имени, что означает, что значения будут сгруппированы в массив:
<textarea name="QuantityAndDescription[]"></textarea>
Это также означает, что код должен получить все текстовые области, а не только первые,Мы можем использовать jQuery для захвата нужных нам элементов, их циклического перемещения и проверки значений.Попробуйте это:
function checkform()
{
var success = true;
// Find the textareas inside id of "comform", store in jQuery object
var $textareas = $("form#comform textarea[name='QuantityAndDescription[]']");
// Loop through textareas and look for empty values
$textareas.each(function(n, element)
{
// Make a new jQuery object for the textarea we're looking at
var $textarea = $(element);
// Check value (an empty string will evaluate to false)
if( ! $textarea.val() )
{
success = false;
return false; // break out of the loop, one empty field is all we need
}
});
if(!success)
{
alert("Quantity & Description must be filled out, DO NOT just put an SO#!!");
return false;
}
// Explicitly return true, to make sure the form still submits
return true;
}
Кроме того, sidenote чистой эстетики: вам больше не нужно использовать хак комментариев CDATA.Это пережиток прежних времен XHTML, чтобы предотвратить нарушение строгих парсеров XML.Если вы не используете XHTML Strict Doctype (а вам это не нужно), он вам определенно не нужен.