Tengo un menú desplegable de selección con los identificadores asignados a los valores. En el evento onChange quiero redirigir a la misma url pero con 'id = value' agregado a la cadena de consulta.Cómo usar jquery para manipular la cadena de consulta
¿Cómo puedo comprobar que esta opción 'id' no está ya en la cadena de consulta (no quiero valores múltiples) y reemplazar/agregar según sea necesario.
¿Cómo puedo comprobar si '?' ya está en la cadena de consulta y anexar a la url si no es así.
¿Hay alguna manera fácil con jquery para hacer esto?
Debe hacer algo similar bajo el capó para llamadas $().ajax(url, {options})
. Esperaba poder hacer $().redirect(url, { id : $(this).val() })
o algo así.
Gracias de antemano.
Nota: Esta página puede o no tener varias opciones de consulta pasadas (que establece valores predeterminados en otras opciones de formulario) por lo que reemplazar toda la cadena de consulta no es una opción.
<html>
<head><script type="text/javascript" src="/jquery-1.3.2.min.js"></script></head>
<body>
<script>
$(function(){
$('#selector').change(function(){
// problem if 'id' option already exists
var url = location.href + '?;id=' + $(this).val();
location.assign(url);
});
});
</script>
<a href="#" onclick="location.assign(location.pathname)">reset</a>
<form>
<select id='selector' name='id'>
<option value='1'>one</option>
<option value='2'>two</option>
<option value='3'>three</option>
</select>
</form>
</body>
</html>
posible duplicado de [codificación de la cadena de consulta de un objeto Javascript] (http: // stackoverflow. com/questions/1714786/querystring-encoding-of-a-javascript-object) –