フォームに 3 つの入力ファイルがあります。disable
ファイル形式が jpeg、gif、png、bmp、pdf のファイル拡張子と一致しない場合、またはファイル サイズが 2 MB を超える場合に送信したい。両方の条件が機能しています。
私の問題は次のように説明されています。ユーザーがrarでアップロードを送信すると、送信が無効になり、機能します。また、次の入力ファイルで、ユーザーが 2MB を超えるファイルを送信しても、送信は無効のままですが、問題ありません。しかし、ユーザーがそのファイルを 2MB 未満のファイルで変更すると、送信が有効になりました。ただし、最初の入力 (rar ファイルを使用) は更新されません。3 つの入力ファイルすべてを再度チェックするわけではありません!!!
したがって、送信を有効にするには、入力の1つだけでなく、すべての入力が適切である必要があるような方法で条件を作成したいと考えています。
で試してみましif (x || y)
たが、うまくいきませんでした。ここでライブデモを見ることができます。
function ValidateSize(file) {
var FileSize = file.files[0].size / 1024 / 1024; // in MB
var fileExtension = ['jpeg', 'jpg', 'png', 'gif', 'pdf', 'bmp'];
if (FileSize > 2) {
alert('El archivo excede los 2MB. Prueba a enviarlo con menor tamaño o no podrás enviar la solicitud.');
// $(file).val(''); //for clearing with Jquery
$("#submit").attr("disabled", true);
} else {
$("#submit").attr("disabled", false);
}
if ($.inArray($(file).val().split('.').pop().toLowerCase(), fileExtension) == -1) {
alert("Solo estos formatos son soportados");
$("#submit").attr("disabled", true);
}
}
<input name="cv-becario" class="ewd-otp-file-input" onchange="ValidateSize(this)" type="file" value="" required="">
<input name="certificado-de-notas-becario" class="ewd-otp-file-input" onchange="ValidateSize(this)" type="file" value="" required="">
<input name="titulo-becario" class="ewd-otp-file-input" onchange="ValidateSize(this)" type="file" value="" required="">