根据另一个Textbox MVC 4填充文本框

时间:2014-05-21 07:02:49

标签: jquery ajax asp.net-mvc json asp.net-mvc-4

我试图根据另一个文本框填充文本框值,但我无法填充其他文本框。我分享我的代码,请指导我提供最佳解决方案

行动方法:

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

我搜索了互联网,但无法找到合适的解决方案。请指导我这个

3 个答案:

答案 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);
                            }
                        }
                    });

See FIDDLE DEMO

答案 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)

的多个记录