Pregunta

Estoy usando el excelente dropkick jquery plugin como parte de un servicio de búsqueda en un sitio web.Dropkick está diseñando una caja de selección que utiliza el usuario para elegir qué sitio web para buscar.Se está utilizando la búsqueda personalizada de Google, y he tenido éxito en decirle a Dropkick que cambie el valor de un campo '#cx' oculto: el campo #CX le dice a Google que se busca la cuenta de búsqueda.

Aquí está el HTML:

<form action="http://example1.com/search/" method="get" id="cse-search-box">
    <fieldset>
        <input type="hidden" name="cx" id="cx" value="custom_search_account_1" />
        <input type="hidden" name="cof" value="FORID:11" />
        <input type="hidden" name="ie" value="UTF-8" />            
        <div class="keywords">
            <label for="keywords">Search</label>
            <input type="text" name="q" id="keywords" class="search text" />
        </div>
        <select name="dk" class="dk">
            <option value="custom_search_account_1">Search website 1</option>
            <option value="custom_search_account_2">Search website 2</option>
            <option value="custom_search_account_3">Search website 3</option>
        </select>
        <input type="image" class="button" src="imgurl" alt="Search" name="sa" />
    </fieldset>
</form>

Aquí está el código JQUERY de trabajo que cambia el valor del campo Hidden '#CX' según el motor de búsqueda, el usuario elige:

$('.dk').dropkick({
    change: function (value, label) {
        var x = $(this).val();                
        $('#cx').val(x);
    }
});

Eso es todo genial.Sin embargo, la acción de la forma también debe cambiarse según la selección del usuario.¿Es esto posible usando este complemento?Si es así, ¿qué cambios en el código de jQuery necesito hacer por favor?¡Ya he presionado los límites de mi conocimiento con esto!

Gracias de antemano por cualquier asistencia.

vítores

¿Fue útil?

Solución

Cambiar el método de acción es tan simple como cambiar cualquier otro atributo. Así que en su método .change simplemente haga un cheque y cambie la acción que se ajuste al valor.

Aquí hay un violín

$('.dk').dropkick({
    change: function (value, label) {
        var x = $(this).val();                
        var action;
        $('#cx').val(x);

        if (x == 'custom_search_account_1') { action = 'action1'; }
        else if (x == 'custom_search_account_2') { action = 'action2'; }
        else if (x == 'custom_search_account_2') { action = 'action2'; }


        $('#cse-search-box').attr('action', action);

     }
});

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top