Bir formdaki değişiklikleri yakalayan ve formun düzenli gönderme işlevini çağıran bazı javascript'im var. Form bir GET formudur (bir arama için) ve paramda birçok boş öznitelik var. Ne yapmam istiyorum daha temiz bir URL almak için, göndermeden önce boş özelliklerini silmektir: Birisi 'konusunu' değişirse örneğin, 'ingilizce' i kendi arama url olmak istemek seçmekFormları göndermeden önce boş değerleri silme
http://localhost:3000/quizzes?subject=English
yerine
http://localhost:3000/quizzes?term=&subject=English&topic=&age_group_id=&difficulty_id=&made_by=&order=&style=
daha şu anda olduğu gibi. Bu, yalnızca insanların yer imleri ve vb. Için daha temiz ve daha anlamlı bir URL'ye sahip olmak amacına yöneliktir. Yani, ihtiyacım olan şey bu satırlar boyunca bir şeydir, ancak bu gerçek formu düzenlemediğim için doğru değildir. ancak formun params yapılan bir js nesnesi:
quizSearchForm = jQuery("#searchForm");
formParams = quizSearchForm.serializeArray();
//remove any empty fields from the form params before submitting, for a cleaner url
//this won't work as we're not changing the form, just an object made from it.
for (i in formParams) {
if (formParams[i] === null || formParams[i] === "") {
delete formParams[i];
}
}
//submit the form
Ben bu yakın olduğumu düşünüyorum, ama asıl formun özelliklerini düzenlemek yerine başka bir nesneyi bulunmak ve o nasıl düzenleneceği adımını kaçırıyorum. ÇÖZÜLDÜ - - DÜZENLEME
max - Herhangi bir tavsiye için minnettar
bu konuda yayınlanan birçok kişiye teşekkürler. İşte sahip olduğum şey mükemmel çalışıyor gibi görünüyor. Eğer formunsubmit
yöntemini çağırırsanız
function submitSearchForm(){
quizSearchForm = jQuery("#searchForm");
//disable empty fields so they don't clutter up the url
quizSearchForm.find(':input[value=""]').attr('disabled', true);
quizSearchForm.submit();
}
Sadece diyebilir, çok böyle kullanıcıların sizin düşünme serin oluyor. –
İyi soru ve güzel cevaplar: Büyük bir arama formum var ve çoğu zaman sadece bir alan doldu. Artık URL'ler çok daha kısa. – guettli