2014-01-03 2 views
0

В моем ASP.NET приложения Web API У меня есть «Сохранить контакт» форму следующим образом:Сообщение данных в ASP.NET Web API с помощью ONBLUR

<form id="saveContactForm" method="post"> 
    <h3>Create a new Contact</h3> 
    <p> 
     <label for="contactId">Contact Id:</label> 
     <input type="text" name="Id" /> 
    </p> 
    <p> 
     <label for="contactName">Contact Name:</label> 
     <input id="Name" type="text" name="Name" /> 
    </p> 
    <input type="button" id="saveContact" value="Save" /> 
</form> 

У меня есть следующий JQuery, которая успешно обрабатывает «Сохранить 'нажмите кнопку:

$('#saveContact').click(function() { 
    var nm = $('#contactName').val(); 
    var id = $('#contactId').val();  
    $.post("api/contact", 
      $("#saveContactForm").serialize(), 
      function (value) { 
       $('#contacts').append('<li>' + value.Name + '</li>'); 
      }, 
      "json" 
    ); 
}); 

и сохраняет новый контакт.

Я хотел бы расширить эту функциональность, добавив событие onblur в поле ввода «Имя».

В качестве теста, это работает:

$("#Name").blur(function() { 
    setTimeout("callafterSomeTime()", 1000); 
});  
function callafterSomeTime() { 
    alert('Hi'); 
} 

Однако это не удается:

$("#Name").blur(function() { 
    $.post("api/contact", 
      $("#saveContactForm").serialize(), 
      function (value) { 
       $('#contacts').append('<li>' + value.Name + '</li>'); 
      }, 
      "json" 
    ); 
}); 

ли я что-то отсутствует?

+0

вы получаете какую-либо ошибку консоли? вы можете добавить' .fail() 'обработчик на посту? ответ может лежать в пределах. –

ответ

0

Во-первых, используйте «on» вместо «click» и «blur». Например:

$('#saveContact').on('click', function() {}); 

В последней функции (размытие события), попробуйте console.log(value); для проверить, если «значение» возвращает ожидаемый.

1

В вашем посте Jquery вы должны добавить косую черту в пути каталога,

$ .post ("/ API/контакт",

вместо

$ .post ("апи/контакты»,

Это работает для меня.