私はCMSに取り組んでいます。ユーザーが既存のサムネイル画像を置き換えたい場合は、代替画像をアップロードし、チェックボックスをオンにして、実際に画像を置き換えていることを証明できます。そうしないと、フォームが空白の値を送信し (すべてのブラウザーのセキュリティの既定値であるアップロード フィールドの既定値が空白であるため)、代替画像を指定せずに既存の画像を消去するため、チェックボックスが必要と思われます。
問題は、チェックボックスを手動でアクティブにするのを忘れ続け、アップロードされた画像が実際には既存の画像を置き換えないことです。これは、チェックボックスがチェックされていないと、受信する PHP ファイルが (設計上) アップロードされたファイル名を処理しないためです。ユーザーも同じ問題を抱えているのではないかと思います。必要な手順の数を減らすことで、これが起こらないようにしたいと考えています。1 つの解決策は、アップロード フィールドがクリックされるたびに jQuery でチェックボックスをオンにすることです。では、なぜこれが機能しないのですか:
$('#image_req').click(function () {
if ($('#checkbox_req').attr('checked',true)) {
$('#checkbox_req').removeAttr('checked');
alert('Unchecked');
} else if ($('#checkbox_req').attr('checked',false)) {
$('#checkbox_req').attr('checked','checked');
alert('Checked');
}
});
問題の HTML は次のようになります。
<input id="image_req" name="local_filename" type="file" />
<input id="checkbox_req" name="replace_image" value="yes" type="checkbox" />