与此问题相关:使用 jQuery,保持表单的提交按钮处于禁用状态,直到所有必需的文本框、单选、复选框元素都有值(或被选中)
我非常好心地帮助整理了这个功能
$('input[type=submit]').prop('disabled', true).addClass('disabled');
var required = $('[required]');
required.bind('change keyup', function()
{
var flag = 0;
required.each(function()
{
if ($(this).not(':checkbox, :radio').val() || $(this).filter(':checked').val())
{
flag++;
}
});
if (flag == required.length)
{
$('input[type=submit]').prop('disabled', false).removeClass('disabled');
}
else
{
$('input[type=submit]').prop('disabled', true).addClass('disabled');
}
});
这里发生的是表单的提交按钮一直处于禁用状态,直到所有具有“必需”属性的字段都具有某种值(或已被检查等)。
作为更大图景的一部分,另一个 jQuery 函数(工作正常)根据选择框的值隐藏其中一些字段。
实际上,当这些字段被隐藏时,应该删除所需的属性。删除 required 属性后,我希望上述函数只计算 (required.length) 剩余的必填字段,但实际上,它会计算所有这些字段——即使是那些不再具有 required 属性的字段。
关于解决这个问题的任何想法?