【问题标题】:Setting Hidden field value through ajax response通过ajax响应设置隐藏字段值
【发布时间】:2014-08-01 09:51:00
【问题描述】:

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

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

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

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

        }
    }


第二个函数调用 ajax 并设置响应如下

    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();
}

【问题讨论】:

  • Con 你发布代码是如何设置值的。
  • 你能展示你的代码吗?
  • 我想,我已经正确设置了值。请看编辑部分
  • 警报(xmlhttp.responsetext)给出了什么?
  • 它只返回预期值。唯一的问题是,该值没有设置为隐藏字段,我不知道为什么?

标签: php ajax input hidden-field


【解决方案1】:

先试试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;          
            }
        }

【讨论】:

  • 请显示ajax代码。这将有助于解决。因为我尝试过隐藏类型,所以对我来说效果很好。
  • 我现在放了ajax请求的原始代码。看看有没有错
  • 必须区分大小写问题:请替换为 document.getElementById('flag').value= xmlhttp.responseText;
  • 如果是区分大小写的问题,那么即使它不应该与 type="text" 一起使用,但它确实可以
  • 嘿,谢谢大家的帮助。我找到了这个问题的原因。实际输出两侧的响应中都有空格。我仍然不知道这些空间是从哪里添加的。现在代码可以正常工作了。
【解决方案2】:

在阅读了关于 .value 与 setAttribute 的内容后,可能是 propertiesattribute 的问题。我看不到您如何或何时访问隐藏值,但如果它是在表单提交之后,则该属性可能尚未设置,因为 .value 设置了该字段的当前值(属性)并且您得到空值。尝试使用 setAttribute。

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

【讨论】:

    猜你喜欢
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    • 2011-03-22
    • 2013-07-02
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    相关资源
    最近更新 更多