У меня есть форма:Как правильно проверить, если все элементы формы заполнены JavaScript
<form action="process.php" method="POST" enctype="multipart/form-data" id="add_prod_form">
Item Name: <input type="text" name="add_prod_name" id="add_prod_name"/><br /><br />
Image 1: <input type="file" name="add_prod_image[]" id="add_prod_image"/><br /><br />
Image 2: <input type="file" name="add_prod_image[]" /><br /><br />
Image 3: <input type="file" name="add_prod_image[]" /><br /><br />
Image 4: <input type="file" name="add_prod_image[]" /><br /><br />
Image 5: <input type="file" name="add_prod_image[]" /><br /><br />
Short description:<br />
<textarea rows="7" cols="50" name="add_prod_description_short" id="add_prod_description_short"/></textarea><br />
Long description:<br />
<textarea rows="7" cols="50" name="add_prod_description_long" id="add_prod_description_long"/></textarea><br /><br />
Price: <input type="text" name="add_prod_price" id="add_prod_price"/><br /><br />
<input type="hidden" name="action" value="add_product" />
<input type="submit" name="submit" id="add_prod_submit" disabled="disabled">
И у меня есть небольшой скрипт:
<script>
$('#add_prod_name, #add_prod_image, #add_prod_description_short, #add_prod_description_long, #add_prod_price').keyup(function() {
if(allFilled()){
$('#add_prod_submit').removeAttr('disabled');
}
});
function allFilled() {
var filled = true;
$('#add_prod_form input, #add_prod_form textarea').each(function() {
if($(this).val() == '') filled = false;
});
return filled;
}
</script>
То, что я ожидал, что когда-то все поля заполняются, кнопка отправки становится доступной. Это не так. К сожалению, я не могу просто проверить все элементы «body input», поскольку на одной странице есть другая форма. У меня есть чувство, что моя проблема лежит где-то в разделе $('#add_prod_form input, #add_prod_form textarea').each(function()
, но я пробовал около 100 способов и ничего не работает.
я в настоящее время адаптации кода я нашел here
Возможно, у вас не всегда есть пять изображений продуктов, поэтому было бы понятно, если хотя бы один из них оставлен пустым. –
Дайте вашей форме id (скажем, 'myForm'), а затем ограничьте селектор только дочерними элементами этой формы. –
@btquanto. Он уже делает это' # add_prod_form' – azium