改变在ASP中使用PartialView时输入元素的ID属性在jQuery中不工作.净MVC4
本文关键字:属性 jQuery ID MVC4 工作 输入 ASP PartialView 改变 元素 | 更新日期: 2023-09-27 18:08:34
我用下面的代码使用ajax调用一个视图:
$.ajax({
type: "POST",
dataType: "html",
async: true,
url: "UrlHereController",
success: function(html){
$(".element").append(html); // the element is appended in the page
$("input[name='Name']").attr("id", "myCustomID"); // this is not working
}
});
上面的代码运行得很好。
我的控制器看起来像:
[HttpPost]
public PartialViewResult GetEmptyArticleTypeView()
{
MyModel model = GenerateEmptyModel();
return PartialView( "~/pathTo/View.cshtml", model );
}
在我的视图中是相对简单的(View.cshtml
):
@model MyModel
@Html.TextBoxFor( item => item.Name )
@Html.TextBoxFor( item => item.Description)
@Html.TextBoxFor( item => item.Value)
上success
回调函数,当我试图改变输入的id
时,它不起作用。id仍然是未修改的值。
为什么?
注意,调用append
和$().attr
之间的超时非常小,所以问题可能是在执行$("input[name='Name']")
时元素实际上没有添加到DOM中。因此,您可以在这里调用setTimeout
,或者在将其插入页面之前修改html
本身,这可能更简洁一些:
var $html = $(html);
$html.find("input[name='Name']").attr("id", "myCustomID");
$(".element").append($html);