Mat*_*art 12 html javascript php forms jquery
我有一个表格:
<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">
Run Code Online (Sandbox Code Playgroud)
我有一个小脚本:
<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>
Run Code Online (Sandbox Code Playgroud)
我期待的是,一旦所有字段都填满,提交按钮就可用了.但事实并非如此.不幸的是,我不能只检查所有"正文输入"元素,因为在同一页面上有另一种形式.我有一种感觉,我的问题出在该$('#add_prod_form input, #add_prod_form textarea').each(function()
部分的某个地方,但我尝试了大约100种方法而且没有任何作用.
我目前正在调整我在这里找到的代码
表单中的某些字段可能为空,例如其余四个文件输入元素.
由于您已经有一个固定的字段列表,您附加了一个事件处理程序,您也可以在执行检查时重用它:
jQuery(function($) {
var $fields = $('#add_prod_name, #add_prod_image, #add_prod_description_short, #add_prod_description_long, #add_prod_price');
$fields.on('keyup change', function() {
if (allFilled($fields)) {
$('#add_prod_submit').removeAttr('disabled');
}
});
function allFilled($fields)
{
return $fields.filter(function() {
return this.value === '';
}).length == 0;
}
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<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">
Run Code Online (Sandbox Code Playgroud)
可以通过在每个必填字段中添加一个类来进一步改进,这样可以减小选择器的大小,并使以后添加字段更容易,而无需编辑代码.
归档时间: |
|
查看次数: |
3473 次 |
最近记录: |