[Resolvido] Autocomplete e completando campos com valores em Jquery e Asp Net MVC
Boa tarde!
Gostaria da ajuda de vocês, fiz um autocomplete na tela de cadastros de chamados, para quando o usuário estiver cadastrando um um chamado, se for cliente novo ou existente, se ele digitar Maria e tiver 3 Marias cadastradas ele irá selecionar a Maria que se refere o chamado, selecionando a Maria existente quando ele pressionar para o próximo campo eles serão autopreenchidos com as informações do cliente que está na base de dados, porém quando o cliente não existir apenas dar continuidade ao cadastro. O Problema do meu código é:
Tenho cadastrado no cadastro de clientes:
Cliente1: Maria Santos
Cliente 2: Maria Virginia
Se eu selecionar Maria Virginia ele trás os dados tanto da Maria Santos quanto da Maria Virginia,sendo que se eu selecionei Maria Virginia não tem por que ele trazer dados de outro cliente certo?! segue script
Crontroller:
Controller
[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpPost]
public JsonResult Index(string Prefix)
{
ClienteAplicacao appCliente = new ClienteAplicacao();
var ListarCliente = appCliente.ListaTodos();
var ClienteNome = (from N in ListarCliente
where N.Nome.StartsWith(Prefix)
select new { N.Nome, N.Id, N.Email });
return Json(ClienteNome, JsonRequestBehavior.AllowGet);
}
public JsonResult ClienteList(string Id)
{
ClienteAplicacao appCliente = new ClienteAplicacao();
var ListaCliente = appCliente.ListaTodos();
var resultado = (from c in ListaCliente
where (c.Nome.ToLower().Contains(Id.ToLower()))
select c).ToList();
return Json(resultado, JsonRequestBehavior.AllowGet);
}
**Jquery**
$(document).ready(function () {
$("#Nome").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Autocom/Index",
type: "POST",
dataType: "json",
data: { Prefix: request.term },
success: function (data) {
response($.map(data, function (item) {
return {
label: item.Nome + ", " + item.Email,
value: item.Nome
};
//return data; }))
$('#Nome').blur(function () {
var aChk = document.getElementsByName('Nome');
var texto = texto + (aChk.value)
$('#lbairro').val(texto);
alert(texto);
$.getJSON('/Autocom/ClienteList/' + $('#Nome').val(), function (data) {
var items = '';
$.each(data, function (i, cliente) {
items += 'E-mail:<input type="email" id="Email" name="Email" value="' + cliente.Email + '" class="txtInputMax" />';
});
$('#rData').html(items);
});
})
}
})
},
});
})
Formulário
<input id="NomeCliente" name="NomeCliente" type="hidden" value="" />
<div>
Nome:
<input name="Nome" id="Nome" type="text" class="txtInputMax" />
</div>
<div class="editor-field" id="rData">
E-mail:
<input name="Email" id="Email" type="text" class="txtInputMax" />
</div>
Agradeço quem puder ajudar!Discussão (2)
Carregando comentários...