如何在json成功函数中设置css样式显示属性

时间:2015-03-07 06:18:41

标签: jquery css json

我从json获取了一些我的html元素的值。 最初我的图像块将被隐藏,我想让它只在输入名称时显示/显示。 我试过$(“#imgblock”)。show();但它不起作用。 我的代码如下。

<script type="text/javascript>
function loadmemberg(m)
{
   $.ajax({
   type   : "POST",
   url    : "details.php",
   data   : {gvalue:m},
   success: function(data){
   var obj = $.parseJSON(data);
     $('#name').val(obj[0].FullName);
     $('#place').val(obj[0].PlaceName);
     $("#image").attr("src", obj[0].ImageFileName);
  var obj="";
     },
  error: function(data){
  alert("Please Enter a valid details");  
  }
  }); 
 }
</script>
<html>
<div><input type="text" id="name"/></div>
<div><input type="text" id="place"/></div>
<div style="display:none" id="imgblock"><img src="" id="image"></div>
</html>

2 个答案:

答案 0 :(得分:2)

错误似乎与ImageFileName有关,因为您的功能是正确的。但是,在我的实施中......我使用$("#image").parent().css("display","block");


代码示例

在此代码示例中,我使用了模拟数据,并且我必须处理ajax错误处理程序中的功能,因为Allow-Cross-Origin将为null。

&#13;
&#13;
//var url = "details.php";

url = "http://www.stackoverflow.com";

function loadmemberg(m)
{
   $.ajax({
   type   : "POST",
   url    : url,
   data   : {gvalue:m},
   success: function(data){
     
   //var obj = $.parseJSON(data);
     var obj = [{"FullName": "Jason Borne", "PlaceName":"Paris, France", "ImageFileName" : "http://www.nysun.com/pics/939.jpg"}]
     $('#name').val(obj[0].FullName);
     $('#place').val(obj[0].PlaceName);
     $("#image").attr("src", obj[0].ImageFileName);
     
     var imgWrapper = $("#image").parent();
     imgWrapper.css("display","block");
     },
     error: function(data){
       // alert("Please Enter a valid details");  suppressing error for this test
       var obj = [{"FullName": "Jason Borne", "PlaceName":"Paris, France", "ImageFileName" : "http://www.nysun.com/pics/939.jpg"}]
     $('#name').val(obj[0].FullName);
     $('#place').val(obj[0].PlaceName);
     $("#image").attr("src", obj[0].ImageFileName);
     var imgWrapper = $("#image").parent();
     imgWrapper.css("display","block");
     }
   }); 
}


loadmemberg(0);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div><input type="text" id="name"/></div>
<div><input type="text" id="place"/></div>
<div style="display:none"><img src="" id="image"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我解决了。我放置了$(&#34;#imgblock&#34;)。show();成功之后:function(data){  它对我有用