Hola
Veamos ....
Tendrás que pasar javascript, así que necesitarás mandar llamar, de forma externa, a este guión con la extensión .js
Código javascript
:
Ver originalvar tagScript = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';
/**
* Eval script fragment
* @return String
*/
String.prototype.evalScript = function()
{
return (this.match(new RegExp(tagScript, 'img')) || []).evalScript();
};
/**
* strip script fragment
* @return String
*/
String.prototype.stripScript = function()
{
return this.replace(new RegExp(tagScript, 'img'), '');
};
/**
* extract script fragment
* @return String
*/
String.prototype.extractScript = function()
{
var matchAll = new RegExp(tagScript, 'img');
return (this.match(matchAll) || []);
};
/**
* Eval scripts
* @return String
*/
Array.prototype.evalScript = function(extracted)
{
var s=this.map(function(sr){
var sc=(sr.match(new RegExp(tagScript, 'im')) || ['', ''])[1];
if(window.execScript){
window.execScript(sc);
}
else
{
window.setTimeout(sc,0);
}
});
return true;
};
/**
* Map array elements
* @param {Function} fun
* @return Function
*/
Array.prototype.map = function(fun)
{
if(typeof fun!=="function"){return false;}
var i = 0, l = this.length;
for(i=0;i<l;i++)
{
fun(this[i]);
}
return true;
};
por otro lado, en principio no te va a funcionar por que está interviniendo un checkbox o radio. Modifica lo que sea necesario hasta adaptarlo a lo que te ocupa
Código javascript
:
Ver originalfunction completarNombre(nombre){
var comp = document.getElementById('autocomplete');
var textbox = document.getElementById('usuario');
textbox.value = nombre;
comp.style.display= "none";
}
function ocultarautocomplete(){
var comp = document.getElementById('autocomplete');
comp.style..display= "none";
}
function autocompletar()
{
var comp = document.getElementById('autocomplete');
var textbox = document.getElementById('usuario');
if (document.getElementById('buscarporape').checked == true)
var crit = "usuario";
else
var crit = "apellidos";
if (textbox.value == ""){
comp.style.visibility = "hidden";
}
else {
colocarAutocomplete();
var ajax = nuevoAjax();
ajax.open("POST","auxi/autocomplete.php",true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.onreadystatechange = function() {
if (ajax.readyState == 4){
var scs=ajax.responseText.extractScript();
comp.innerHTML = ajax.responseText.stripScript();
scs.evalScript();
}
}
ajax.send("texto=" + textbox.value + "&crit=" + crit);
}
}
function colocarAutocomplete(){
var comp = document.getElementById('autocomplete');
var textbox = document.getElementById('usuario');
var oNode = textbox;
var iLeft = 0;
var iTop = 0;
while(oNode.tagName != "BODY") {
iLeft += oNode.offsetLeft;
iTop += oNode.offsetTop;
oNode = oNode.offsetParent;
}
comp.style.left = iLeft;
comp.style.top = iTop + textbox.offsetHeight;
comp.style.width = textbox.offsetWidth;
}
function Evento(elemento,nomevento,funcion) {
if (elemento.attachEvent)
{
var f=function(){
funcion.call(elemento,window.event);
}
elemento.attachEvent('on'+nomevento,f);
return true;
}
else
if (elemento.addEventListener)
{
elemento.addEventListener(nomevento,funcion,false);
return true;
}
else
return false;
}
window.onload = function () {
var elemento = document.getElementById('autocomplete');
var elementoDIV = document.getElementById('usuario');
elemento.onkeyup = function() {
autocompletar(elemento.value);
}
window.onclick = function () {
ocultarautocomplete();
}
}
en la petición has de incluir algo como
Código javascript
:
Ver original<script type="tex/javascript">
var ref = document.getElementById('usuario').getElementsByTagName('nombredelelemento');
for (var i = 0; i < ref.length; i++) {
Evento(ref[i], 'click', function() {
completarNombre(this.id);
})
}
</script>
alguna duda, ya sabes ....
Suerte