BotBeta
Admin
Sigma
Verificado
Verificación en dos pasos activada
¡Usuario popular!
Suscripción a IA
Claro, vamos a asegurarnos de que la función$(document).on("click", ".lobre", function(){
var dataidValue = $(this).attr("datauser");
var dataidInput = $(this).attr("datainput");
// Selecciona el textarea correspondiente del mismo formulario
var $currentTextarea = $(this).closest('.intercomu').siblings('.omsum[profid="' + dataidInput + '"]');
// Actualiza el valor del textarea
$currentTextarea.val(function(i, text) {
$("subody").attr("matches",text);
var mentionIndex = text.lastIndexOf('@');
$currentTextarea.closest('form').find(".intercomu").remove(); // Elimina sugerencias del mismo formulario
return (mentionIndex !== -1) ? text.substring(0, mentionIndex) + "@" + dataidValue + " " : "@" + dataidValue + " ";
}).focus(); // Enfoca el textarea
});
puedes hacer que funcione el matches
matches esté correctamente implementada en tu código. Basándome en lo que has compartido, quiero asegurarme de que estás actualizando el atributo matches del textarea que corresponde, y no de un elemento erroneo como $("subody"). Aquí tienes el código corregido:
### Código Corregido
JavaScript:
$(document).on("click", ".lobre", function(){
var dataidValue = $(this).attr("datauser");
var dataidInput = $(this).attr("datainput");
// Selecciona el textarea correspondiente del mismo formulario
var $currentTextarea = $(this).closest('.intercomu').siblings('.omsum[profid="' + dataidInput + '"]');
// Actualiza el valor del textarea
$currentTextarea.val(function(i, text) {
// Aquí actualizamos el atributo 'matches' directamente en el textarea
var mentionIndex = text.lastIndexOf('@');
var updatedText = (mentionIndex !== -1) ? text.substring(0, mentionIndex) + "@" + dataidValue + " " : "@" + dataidValue + " ";
// Actualiza el atributo 'matches' con la nueva mención
$currentTextarea.attr("matches", updatedText.match(/@(\w+)/g)); // Aquí usamos .match para obtener las menciones
// Elimina sugerencias del mismo formulario
$currentTextarea.closest('form').find(".intercomu").remove();
return updatedText; // Retorna el texto actualizado
}).focus(); // Enfoca el textarea
});
### Explicación de los Cambios
1. Actualización del Atributo
matches: He actualizado el atributo matches del $currentTextarea directamente utilizando la función match para buscar menciones en updatedText. Esto asegura que el atributo matches contenga las menciones correctas.2. Modificación del Texto del Textarea: El texto del textarea se crea y se regresa de manera que se agrega la mención correctamente.
3. Eliminación de Sugerencias: Continúas eliminando las sugerencias de
intercomu correctamente.Con estos ajustes, cuando haces clic en un elemento con la clase
lobre, la mención se agrega adecuadamente al textarea, y el atributo matches se actualiza para reflejar las menciones actuales. Asegúrate de probarlo en tu entorno y verifica que no haya otros scripts que interfieran.
