使用onBlur将数据发布到ASP.NET Web API

时间:2014-01-03 13:22:13

标签: jquery asp.net-web-api onblur

在我的ASP.NET Web API应用程序中,我有一个“保存联系人”表单,如下所示:

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

我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

在你的jQuery帖子中,你应该在目录路径中添加正斜杠,

$。交( “/ API /接触”,

而不是

$。交( “API /接触”,

这对我有用。

答案 1 :(得分:0)

首先,使用&#34; on&#34;相反&#34;点击&#34;和&#34;模糊&#34;事件。例如:

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

在最后一个功能(模糊事件)中,尝试console.log( value );验证&#34;值&#34;返回预期的。