Pregunta

Quiero usar jQuery y crear un etiquetado interfaz para los usuarios.De manera Similar a cómo los usuarios en StackOverflow puede agregar etiquetas para el tipo de pregunta que se están haciendo.Me estoy poniendo a trabajar con jQuery y tagit:

http://jquery.webspirited.com/2011/02/jquery-tagit-a-jquery-tagging-plugin/

Nueva ubicación de la biblioteca:

https://github.com/hailwood/jQuery-Tagit

El problema es que dicen que el usuario tiene un error en otra parte del formulario y hace clic en enviar, el formulario se vuelve a cargar con el mensaje de error y todas las etiquetas que se han ido.Hay un simplar manera de conseguir el etiquetado en Django?

[EDITAR]

Tratando esta basado en Hailwood la respuesta de abajo...

<ul name="event_tag" class="tags">
    <li class="tagit-choice" tagvalue="3">
        Dog
        <a class="tagit-close">x</a>
    </li>
</ul>

Sin embargo, cuando se carga la página se carga, esa etiqueta en particular no está cargado?Parece que el ul la etiqueta se borra y luego hay otra información cargados en él.Yo no lo veo cuando me carga la página.

También traté como se indica a continuación:

<ul name="event_tag" class="tags">
    <li data-value="3">Dog</li>
</ul>

Cuando me trate de esta manera, aparece por un segundo y luego desaparece...

[EDIT 2]

Encontré la solución a mi problema.Como Hailwood sugerido, mediante programación se puede crear el li's como se indica a continuación:

<ul name="event_tag" class="tags">
    <li data-value="3">Dog</li>
</ul>

La razón no estaba funcionando para mí fue porque había para los valores iniciales:

$.getJSON("ajaxrequest.json", function(data) {
    $(".tags").tagit("fill", data);
});

El problema para mí era que onload, todo fue desapareciendo.La razón de esto es porque de fill.Cuando reemplazamos fill con add como por: $(".tags").tagit("add", data);, entonces funciona.

¿Fue útil?

Solución

Ser el creador de la tagit plugin que usted ha mencionado supongo que te ayuden.

Por lo que puedo ver parece que se están utilizando como parte de un formulario, y cuando usted haga clic en enviar a validar el formulario en el lado del servidor, si se produce un error vuelve a cargar la página con el formulario de valores en el remolque?

Lo que yo sugeriría que hacer es habilitar la oculta seleccione la opción (select: true).

Cuando el formulario es enviado, usted recibirá una lista de las etiquetas seleccionadas.

Entonces, si vuelve a cargar la página simplemente de carga de las etiquetas de nuevo en la lista <li>s.

(Por favor nota que no sabes de Python, por lo que el siguiente pseudo código)

if(form_values.tags)
    for(tag in form_values.tags)
        print '<li data-value=" '+tag.value+' "> '+tag.label+' </li>';
    endfor;
endif;

*Usted también podría pasar las etiquetas a la initialTags opción, pero que requieren la salida de javascript, lo que en mi opinión es menos ordenado que el método anterior :)

Otros consejos

Usted debe checkout jQuery Select2 de apoyo para el etiquetado.

http://ivaynberg.github.com/select2/#tags

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