通过ajax响应设置隐藏字段值

时间:2014-06-11 10:59:56

标签: php ajax input hidden-field

我在php页面上有2个隐藏字段。
1. <input type="hidden" name="clinic" id="clinic">
2. <input type="hidden" name="flag" id="flag">

我想通过ajax响应来设置这些字段的值。当我通过ajax响应设置这些值时,它没有被反映出来。
但是当我从这些type="hidden"标签中删除<input >时,会根据需要设置值。
如下所示 1. <input name="clinic" id="clinic">
2. <input name="flag" id="flag">

我不知道为什么会这样吗?帮我。
第一个函数调用ajax&amp;设置响应如下

    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) 
        {
            document.getElementById("clinic").value=xmlhttp.responseText;   

        }
    }


第二个函数调用ajax&amp;设置响应如下

    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) 
        {
            document.getElementById("flag").value=xmlhttp.responseText; 

        }
    }

这是我的实际ajax请求

function showAppFlag(leadid,param)
{       
    serviceid = "1";
    if (leadid=="")
    {
        document.getElementById("Flag").value="";
        return;
    }
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {       
        if (xmlhttp.readyState==4 && xmlhttp.status==200) 
        {
            document.getElementById('Flag').value= xmlhttp.responseText;
            var flags = document.getElementById('Flag').value;

            if(trim(flags)== "APP" && document.getElementById('cmb_subdispose').value == "APP")
            {
                alert('please select other disposition');
                return;
            }
            else
            {                   
                showClinicFlag(leadid,param);
            }
        }
    }
    xmlhttp.open("GET","ctiservice.php?Type=FlagApps&lead_id="+leadid+"&service="+serviceid,true);
    xmlhttp.send();
}

2 个答案:

答案 0 :(得分:0)

首先尝试 type = text ,不会出现type = hidden问题。为什么你不能像这样使用

        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200) 
            {
                document.getElementById("clinic").value=xmlhttp.responseText;  
                document.getElementById("flag").value=xmlhttp.responseText;          
            }
        }

答案 1 :(得分:0)

阅读.value与setAttribute之后可能是属性 vs 属性问题。我不知道您是如何以及何时访问隐藏值但是如果它在表单提交后,则该属性可能尚未设置,因为.value设置字段的当前值(属性)并且您得到null。尝试使用setAttribute。

这是我使用所提供信息的最佳猜测。