我试图根据另一个文本框填充文本框值,但我无法填充其他文本框。我分享我的代码,请指导我提供最佳解决方案
行动方法:
[HttpGet]
public ActionResult GetInfo(string Email)
{
var result = (from c in db.Customers
where c.Email.ToLower().Contains(Email.ToLower())
select new { c.FirstMidName }).Take(6);
return Json(result, JsonRequestBehavior.AllowGet);
}
脚本:
$(document).ready(function () {
var Email;
$(function () {
$("#Email").keydown(function () {
Email = $("#Email").val();
$.ajax({
type: "GET",
url: 'Admin/Ticket/GetInfo',
data: { Email: Email },
success: function (data) {
if (data) {
alert(data);
$('#Phone').text(data);
}
}
});
});
});
我搜索了互联网,但无法找到合适的解决方案。请指导我这个
答案 0 :(得分:2)
你需要这样做,你必须使用val()
而不是text()
来设置文本框值:
success: function (data) {
if (data) {
alert(data.FirstMidName);
$('#Phone').val(data.FirstMidName);
}
也在您的ajax调用集 dataType :
中 $.ajax({
type: "GET",
url: 'Admin/Ticket/GetInfo',
data: { Email: Email },
dataType:"json",
success: function (data) {
if (data) {
alert(data.FirstMidName);
$('#Phone').val(data.FirstMidName);
}
}
});
答案 1 :(得分:1)
@Flater i'm not getting any error, i'm getting the JSON response successfully here it is "FirstMidName":"usama" but it is not binding to texbox this is the problem
$('#Phone').text(data); //your code
问题在于您将文字设置为data
,但您已确认data
有一个名为FirstMidName的字段(在其他情况下)单词,data
isn' ta string!)。因此,您应该参考以下字段:
$('#Phone').val(data.FirstMidName); //my fix
修改我还将.text()
更改为.val()
。在使用表单输入元素时,您应该使用后者。
答案 2 :(得分:0)
我的问题也有类似的问题,我不确定你是否设法修复但只是改变了。
$('#Phone').val(data.FirstMidName);
to
$('#Phone').val(data[0].FirstMidName);
JSON结果是一个数组,因此您必须使用索引。希望这有助于其他人。 同样在您的控制器操作中,您要求更改为Take(1)
的多个记录