Value和Focus()不处理动态创建的输入

时间:2016-07-01 21:08:04

标签: javascript php ajax

我正在尝试创建一些内容,每30秒为所有用户刷新日期列表。 我使用AJAX动态创建一个包含数据库中日期列表的表,事实是刷新会删除用户在刷新时写入的内容,因此我将保存用户在javascript全局变量中写入的内容,调用刷新功能,然后用变量中的信息填充输入并聚焦用户所在的输入。

事情是输入没有填充也没有集中。

这是我的相关代码:

var identificacionc = "";
var nombresc = "";
var apellidosc = "";
var telefonoc = "";
var posicionc = 0;
var ladoc = 0;

//This is called on input onfocus to record the id
function recuerdo(posicion, lado)
{
    posicionc = posicion;
    ladoc = lado;
}

function actualizar()
{
    //This line is not relevant
    listaragenda();

    if (document.getElementById("datepicker").value != "")
    {
        //put the info in the global variables and it works even if they're dynamically created
        identificacionc = document.getElementById("txtidentificacion" + posicionc).value;
        nombresc = document.getElementById("txtnombres" + posicionc).value;
        apellidosc = document.getElementById("txtapellidos" + posicionc).value;
        telefonoc = document.getElementById("txttelefono" + posicionc).value;
        //Here is where I call the function to refresh dates
        listarcitas();    
    }
}

function listarcitas()
{
    var objAjax = crearObjeto();
    var fecha = document.getElementById("datepicker").value;
    objAjax.open("POST", "clases/listarcitas.php", true);
    objAjax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    objAjax.onreadystatechange = function() 
    {
        if (objAjax.readyState == 4 && objAjax.status == 200) 
        {
            document.getElementById("citaslistadas").innerHTML = objAjax.responseText;
            //Checks if any global variable is not empty to start to fill them with the info
            //nothing inside this If works
            //posicionc and ladoc have the correct values
            if (identificacionc != "")
            {
                document.getElementById("txtidentificacion" + posicionc).value = identificacionc;
                document.getElementById("txtnombres" + posicionc).value = nombresc;
                document.getElementById("txtapellidos" + posicionc).value = apellidosc;
                document.getElementById("txttelefono" + posicionc).value = telefonoc;

                if (ladoc == 1)
                {
                    document.getElementById("txtidentificacion" + posicionc).focus();
                }
                else if (ladoc == 2)
                {
                    document.getElementById("txtnombres" + posicionc).focus();
                }
                else if (ladoc == 3)
                {
                    document.getElementById("txtapellidos" + posicionc).focus();
                }
                else if (ladoc == 4)
                {
                    document.getElementById("txttelefono" + posicionc).focus();
                }
            }
        }
    }
    objAjax.send("fecha=" + fecha);
}

//the interval every 30s
window.setInterval("actualizar()", 30000);

从AJAX检索到的所有内容都能很好地列出所有内容,即使在Web浏览器控制台中我也会对变量发出警报,设置值并聚焦动态创建的输入,一切正常。

但为什么这不适用于代码?

提前致谢

0 个答案:

没有答案