fix: autocomplete CIE-10 no seleccionaba por comillas rotas en onmousedown
Reemplaza JSON.stringify en atributo HTML por data-atributos + event delegation, evitando que las comillas dobles rompan el handler. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
67f6e23ffd
commit
c1cb5906a9
@@ -801,7 +801,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
autocomplete="off"
|
||||
oninput="buscarDiag()"
|
||||
onblur="setTimeout(()=>document.getElementById('diag-resultados').classList.add('d-none'),150)"
|
||||
onkeydown="if(event.key==='Enter'&&_diagResultados.length){event.preventDefault();seleccionarDiag(_diagResultados[0].cod_diag,_diagResultados[0].concepto);}">
|
||||
onkeydown="if(event.key==='Enter'&&_diagResultados.length){event.preventDefault();seleccionarDiag(_diagResultados[0].cod_diag);}">
|
||||
<div class="position-relative">
|
||||
<ul id="diag-resultados" class="list-unstyled mb-0 border rounded bg-white shadow-sm position-absolute w-100 d-none"
|
||||
style="z-index:200;max-height:200px;overflow-y:auto;top:2px"></ul>
|
||||
@@ -2422,19 +2422,23 @@ async function _doDiagSearch() {
|
||||
ul.innerHTML = '<li class="px-3 py-2 text-muted small">Sin resultados</li>';
|
||||
ul.classList.remove('d-none'); return;
|
||||
}
|
||||
ul.innerHTML = _diagResultados.map((d, i) => `
|
||||
<li class="px-3 py-2" style="cursor:pointer;border-bottom:1px solid #f1f5f9"
|
||||
onmousedown="seleccionarDiag(${JSON.stringify(d.cod_diag)},${JSON.stringify(d.concepto)})">
|
||||
ul.innerHTML = _diagResultados.map(d => `
|
||||
<li class="px-3 py-2 diag-item" style="cursor:pointer;border-bottom:1px solid #f1f5f9"
|
||||
data-cod="${escHtml(d.cod_diag)}" data-concepto="${escHtml(d.concepto)}">
|
||||
<span class="fw-semibold small">${escHtml(d.cod_diag)}</span>
|
||||
<span class="text-muted small ms-2">${escHtml(d.concepto)}</span>
|
||||
</li>`).join('');
|
||||
ul.classList.remove('d-none');
|
||||
}
|
||||
function seleccionarDiag(cod, concepto) {
|
||||
function seleccionarDiag(cod) {
|
||||
document.getElementById('inp-diag').value = cod;
|
||||
document.getElementById('diag-resultados').classList.add('d-none');
|
||||
_diagResultados = [];
|
||||
}
|
||||
document.getElementById('diag-resultados').addEventListener('mousedown', function(e) {
|
||||
const li = e.target.closest('.diag-item');
|
||||
if (li) { e.preventDefault(); seleccionarDiag(li.dataset.cod); }
|
||||
});
|
||||
|
||||
// ── Motor de precios ──────────────────────────────────────────
|
||||
let _recalcTimer;
|
||||
|
||||
Reference in New Issue
Block a user