在我們的網頁中,表單是不可避免的一個元素,我們通常需要在表單中收集用戶的信息。但是,如果用戶沒有填寫必填字段,那么我們獲取的信息將不完整,給我們后續的數據統計帶來麻煩。為了防止這種情況的發生,我們可以使用jQuery讓所有必填的input都不能為空。
$(document).ready(function() { // 給所有必填的input添加必填標記 $('input[required]').prev('label').append('<span>*</span>'); // 給所有必填的input添加失去焦點事件 $('input[required]').blur(function() { // 獲取input的值 var val = $(this).val().trim(); // 如果值為空,添加錯誤提示 if(val === '') { $(this).addClass('required-error'); $(this).prev('label').find('span').addClass('required-error'); $(this).after('<p class="required-error-tip">此項不能為空</p>'); } // 如果不為空,移除錯誤提示 else { $(this).removeClass('required-error'); $(this).prev('label').find('span').removeClass('required-error'); $(this).next('.required-error-tip').remove(); } }); });
代碼中,我們首先給所有必填的input添加必填標記,這樣一來用戶就能知道哪些字段是必填的。接著,我們給所有必填的input添加失去焦點事件,在用戶離開input的時候,判斷它的值是否為空。如果為空,我們給它添加錯誤提示,并添加一個required-error的類,以便我們可以為它添加樣式。如果不為空,我們移除錯誤提示。
其中,required-error的樣式可以根據需求進行自定義。例如:
input.required-error { border: 1px solid red; } label.required-error span { color: red; } .required-error-tip { color: red; margin-top: 5px; }
這樣一來,用戶在填寫表單的時候,就不會忘記必填的字段,我們也能獲得完整的數據。當然,這只是最基本的處理方式,我們可以對它進行更多的優化,比如使用插件、添加動態驗證等等。