5 つの検索条件入力ボックスがあるフォームがあります。入力ボックスをクリアするには、ページに「すべてクリア」ボタンを配置するという追加の要件を受け取りました。
「すべてクリア」ボタンdiv
を、入力ボックスが空の場合は背景が灰色になり、入力ボックスに何かがある場合は背景が赤になる背景画像を実際に使用したいと思います。
「すべてクリア」ボタンをクリックすると、入力ボックスがクリアされます。
ユーザーが検索ボックスに何かを入力したときの赤い背景画像への切り替えを除いて、ほとんどすべてが機能しています。私はjsfiddleを構築しました:http://jsfiddle.net/pJgyu/27896/私の問題を示しています(不要なものを排除するために、背景画像の代わりに背景色を使用しました)。
私のjsfiddleのJavaScriptは、私がやりたいことと一致し、次のようになります。
function clearSearchClick() {
$('.ui-clear').removeClass('enabled').addClass('disabled');
$(':input').val('');
$('.first').focus();
}
function docKeyPress(event) {
if (event.which === 13) {
event.preventDefault();
alert('pretend I searched');
}
}
function searchEmpty() {
var valid = true;
$(':input').each(function() {
if ($(this).val() !== '') return false;
});
return valid;
}
function inputKeyUp(event) {
if (!searchEmpty()) {
$('ui-clear.disabled').removeClass('disabled').addClass('enabled');
}
}
$(function () {
$('.first').focus();
$('.ui-clear').click(clearSearchClick);
$(':input').keyup(inputKeyUp);
$(document).keypress(docKeyPress);
});
私はjavascriptについて次のことを知っています:
- ピント
.first
が効く .ui-clear
クリックハンドラーが機能します
ユーザーが何かを入力すると、最初の検索ボックスの左側にあるブラック ボックスが赤くなりません。この目標を達成するための正しく効率的な方法についての洞察をいただければ幸いです。