这是我在网站上的一个小部件的脚本部分。当“inp”类的文本框具有更改的值时,代码将所有参数发送到通过数据库查找并返回记录为json的Web服务。我的问题是我不知道如何获取json response中的值。我正在尝试将新的div添加到res12 div作为结果应该来自json.I能够创建div但值是未定义的,并且脚本运行多个时间,我不明白为什么。我需要你的帮助。谢谢你提前。 json的回应
[{“description”:“发送给会议”,“日期”:“19.02.2012 21:34:26”,“lid”:“6”,“companyname”:“M& L”,“ personname“:”jack ferrel“,”email“:”jacky@ml.com“,”fax“:”123123“,”phone“:”345345“,”industryname“:”finance“,”teamname“:”w12et “,”发件人“:”jack ferrel“,”statusname“:”waiting“}]
<script type="text/javascript">
var typingTimer;
var doneTypingInterval = 5000;
$(document).ready(function () {
$(".inp").keyup(function () {
typingTimer = setTimeout(doneTyping, doneTypingInterval);
});
$(".inp").keydown(function () {
clearTimeout(typingTimer);
});
});
function doneTyping() {
$.ajax({
type: "POST",
url: "letter.ashx",
data: { CompanyName: $("#<%=TextBox1.ClientID%>").val(), PersonName: $("#<%=TextBox3.ClientID%>").val(), Email: $("#<%=TextBox5.ClientID%>").val() },
dataType: "application/json",
success: function (msg) {
var newdiv = $('<div class="e"><div></div><div>'+CompanyName+'</div><div>'+Sender+'</div><div>1</div><div>2</div></div> ');
$('#res12').append(newdiv);
}
});
}
</script>
答案 0 :(得分:2)
您在创建的新div中看到undefined
,因为未定义CompanyName
和Sender
。如果它们是ajax响应的一部分,则使用msg.CompanyName
和msg.Sender
。试试这个。
function doneTyping() {
$.ajax({
type: "POST",
url: "letter.ashx",
data: { CompanyName: $("#<%=TextBox1.ClientID%>").val(), PersonName: $("#<%=TextBox3.ClientID%>").val(), Email: $("#<%=TextBox5.ClientID%>").val() },
dataType: "application/json",
success: function (msg) {
var newdiv = $('<div class="e"><div></div><div>'+msg.CompanyName+'</div><div>'+msg.Sender+'</div><div>1</div><div>2</div></div> ');
$('#res12').append(newdiv);
}
});
}
<强>更新强>
您在问题中发布的json有companyname
而非CompanyName
,sender
相同。请注意,JavaScript区分大小写,因此您必须在代码中使用companyname
和sender
来获取值。