jquery - Grails richui autocomplete para cuadro de texto clonado
grails-plugin gsp (1)
Cuando clonas el tr
clona todo el contenido, incluye el javascript
creado por el plugin. Este script clonado usa el id
del text field
para que se auto complete
. Este id
Y campo de texto se requiere para cambiar para hacer trabajos de autocompletado clonados.
Utilizo la siguiente secuencia de comandos para cambiar esos identificadores:
<script type="text/javascript">
var counter = 1;
function asd() {
var cloneContent = "<tr>" + $("#firstTrToClone").html().replace(/giveAUniqueId/g, "giveAUniqueId" + counter++) + "</tr>";
$("#tableId").append(cloneContent);
}
</script>
La siguiente es mi página de trabajo completa:
<!DOCTYPE html>
<html>
<head>
<resource:autoComplete skin="default"/>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
var counter = 1;
function asd() {
var cloneContent = "<tr>" + $("#firstTrToClone").html().replace(/giveAUniqueId/g, "giveAUniqueId" + counter++) + "</tr>";
$("#tableId").append(cloneContent);
}
</script>
</head>
<body>
<g:form>
<table id="tableId">
<tr id="firstTrToClone">
<td>
<richui:autoComplete name="name" id="giveAUniqueId" action="${createLinkTo(''dir'': ''oauthCallBack/test'')}"/>
</td>
</tr>
</table>
</g:form>
<button onclick="asd()">Clone</button>
</body>
</html>
Intentalo..,.
Estoy usando el campo de grails richui autocomplete
en mi aplicación. Funciona bien para mi cuadro de texto estático, pero cuando clono el cuadro de texto, esta característica no funciona para los cuadros de texto clonados y no muestra ningún error.
Alguna idea de cómo solucionar esto
Aquí está mi código:
<resource:autoComplete skin="default" />
hasta arriba
<richui:autoComplete name="filterLocation1" id="filterLocation1" delimChar=";" class="location_txtbox" action="${createLinkTo(''dir'': ''abc/yyy'')}" style="margin-left:5px;"/>
Este es mi campo de autocompletar
y estoy clonando así
var counter = 1;
$("#addRow").click(function() {
counter++;
var cln = $(''#static_table tbody>tr:last'').clone(true);
cln.find("[id^=''filterLocation'']").each(function(i, val) {
val.id = val.id.match(/^([^0-9]+)[0-9]*$/)[1] + "" + counter;
});
return false;
});
Copio toda la fila, hago algunas operaciones de ocultar / mostrar e incremento los ID.