改变在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仍然是未修改的值。

为什么?

改变在ASP中使用PartialView时输入元素的ID属性在jQuery中不工作.净MVC4

注意,调用append$().attr之间的超时非常小,所以问题可能是在执行$("input[name='Name']")时元素实际上没有添加到DOM中。因此,您可以在这里调用setTimeout,或者在将其插入页面之前修改html本身,这可能更简洁一些:

var $html = $(html);
$html.find("input[name='Name']").attr("id", "myCustomID");
$(".element").append($html);