jQuery在ajax之后输入值为空

时间:2014-03-30 16:12:40

标签: jquery asp.net-mvc razor

我使用jquery ajax调用从控制器获取部分剃刀视图。

$.ajax({
    type: "POST",
    contentType: "application/json",
    url: url,
    async: false,
    data: JSON.stringify(data)
}).success(function(result) {
    container.html(result);
}).fail(function(result) {
    // fail 
});  

这很好用,返回的html是一个带有一些文本输入的表单。如果我查看元素,则输入的值由调用返回的内容设置。

示例:

<input class="valid" id="ItemId" name="ItemId" type="text" value="ItemValue">

当我尝试在这个元素上使用额外的jquery时,值总是空白的,当我在元素上做一个选择器时,元素与chrome inspect元素中显示的元素不同。

绑定到元素并选择的代码:

$(document).on("blur", "#ItemId", function(e) {
    var itemId = $("#" + e.target.id).val();
}

如果我输入&#34; NewValue&#34;进入输入字段时,会调用on blur事件,但这里的itemId是&#34;&#34;并且元素在chrome控制台中看起来像这样:

 <input class="valid" id="ItemId" name="ItemId" type="text" value>

我希望value =&#34; NewValue&#34;。我错过了什么或做错了什么?

注意:如果我使用razor渲染局部视图而不从jquery ajax中检索它,这个jQuery代码都可以正常工作。输入值按预期工作。

1 个答案:

答案 0 :(得分:0)

您忘记了)};

$(document).on("blur", "#ItemId", function(e) {
    var itemId = $("#" + e.target.id).val();
});