我使用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代码都可以正常工作。输入值按预期工作。
答案 0 :(得分:0)
您忘记了)};
$(document).on("blur", "#ItemId", function(e) {
var itemId = $("#" + e.target.id).val();
});