【发布时间】:2015-07-18 21:35:24
【问题描述】:
我有一个表格:
<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>
我期望的是,一旦所有字段都填写完毕,提交按钮就会变得可用。它没有。不幸的是,我不能只检查所有“正文输入”元素,因为同一页面上还有另一个表单。我感觉我的问题出在 $('#add_prod_form input, #add_prod_form textarea').each(function() 部分的某个地方,但我尝试了大约 100 种方法,但没有任何效果。
我目前正在修改我找到的代码 here
【问题讨论】:
-
您可能并不总是有五张产品图片,因此如果至少有一张是空的也可以理解。
-
给你的表单一个id(比如
myForm),然后将选择器限制为只有该表单的孩子 -
@btquanto 他已经这样做了
#add_prod_form -
是的,我现在看到了,然后限制为
add_prod_form然后:D -
是的,但是当您使用
#add_prod_form input选择器时,您会检查它们。
标签: javascript php jquery html forms