Estoy tratando de crear un formulario de búsqueda con un menú desplegable que permita a los visitantes de un sitio elegir en qué sitio realizar su búsqueda.
El menú desplegable ofrece una selección de sitios para buscar.
Hasta ahora, llegué hasta aquí: https://biblio.brossard.ca/boite-de-recherche-test/ .
Todo funciona muy bien excepto cuando uso palabras con letras acentuadas (é, ê, à, î, etc.) en el cuadro de búsqueda.
Aquí está el código HTML:
<form name="searchform" id="searchform" class="search-form" onSubmit="return dosearch();"> <div class="search-form-wrap"> <div class="selecteur"> <select name="sengines"> <option id="options" value="https://biblio.brossard.ca/?s=">Site Web</option> <option id="options" value="https://catalogue.brossard.ca/query?q=" selected>Catalogue</option> <option id="options" value="https://bibliothequemunicipaledebrossard.on.worldcat.org/v2/search?queryString=">Catalogue international</option> </select></div><input type="text" name="searchterms" class="search-form-input" style="border-radius: 0 25px 25px 0; width: 70%; display: inline;" placeholder="Saisissez les termes de votre recherche."><input type="submit" name="SearchSubmit" id="searchsubmit" class="button submit-button" value="" /> </div> </form>Y aquí está el código javascript:
<script type="text/javascript"> function dosearch() { var sf=document.searchform; var submitto = sf.sengines.options[sf.sengines.selectedIndex].value + escape(sf.searchterms.value); window.location.href = submitto; return false; } </script>Entonces, ¿cómo podría hacer un formulario de búsqueda en el que los visitantes de mi sitio puedan seleccionar dónde realizar su búsqueda desde una selección en un menú desplegable y la búsqueda funcionará con palabras con y sin caracteres acentuados?
Muchas gracias por su ayuda.
Lo primero es lo primero La función escape() está en desuso . Aunque escape() no está estrictamente en desuso (como en "eliminado de los estándares web").
La función escape() calcula una nueva cadena en la que ciertos caracteres han sido reemplazados por una secuencia de escape hexadecimal.
escape('abc123'); // "abc123" escape('äöü'); // "%E4%F6%FC" escape('ć'); // "%u0107" // special characters escape('@*_+-./'); // "@*_+-./"La función de escape es una propiedad del objeto global. Los caracteres especiales se codifican con la excepción de: @*_+-./
La forma hexadecimal de los caracteres, cuyo valor de unidad de código es 0xFF o menos, es una secuencia de escape de dos dígitos: %xx. Para caracteres con una unidad de código mayor, se utiliza el formato de cuatro dígitos %uxxxx.