2012-07-05 46 views
0

我的asp.net mvc3页面有问题。我有一个视图,它有一个窗体来创建一个特定模型的项目。它看起来像这样:jquery不能在asp.net mvc3的视图中工作?

@model testPro.Models.AddItemModel 
@{ 
    ViewBag.Title = "New"; 
} 
@*<h2>New</h2>*@ 

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 
@using (Html.BeginForm()) 
{ 
    @Html.ValidationSummary(true) 

    <fieldset> 
     <legend>New Item</legend> 

       <div class="editor-label"> 
        @Html.LabelFor(model => model.UserItem.name) 
       </div> 
       <div class="editor-field"> 
        @Html.EditorFor(model => model.UserItem.name) 
        @Html.ValidationMessageFor(model => model.UserItem.name) 
       </div> 
     <p> 
      <input type="submit" value="Create" /> 
     </p> 
    </fieldset> 
} 
<div> 
    @Html.ActionLink("Back to List", "Index") 
</div> 

<script> 
    $(document).ready(function() { 

     alert("test"); 
     $("#UserItem_Name").html("bla"); 
     $("#UserItem_Name").attr('disabled'); 
    }); 
</script> 

最后我有我的jQuery的东西,应该改变文本框。

的问题是,没有什么变化,我不知道为什么

和肯定:我有jQuery的包括在头中。

+0

警报工作? – coolguy 2012-07-05 09:18:25

+0

这是一个包含AJAX请求的视图或部分视图吗? – 2012-07-05 09:19:42

+0

你确定你也在引用核心jQuery库吗? – hallie 2012-07-05 09:20:39

回答

1

尝试:

<script type="text/javascript"> 
    $("#UserItem_name").val('bla'); 
    $("#UserItem_name").attr('disabled', 'disabled'); 
</script> 

事情需要注意:

  • 你的文本框的id是UserItem_name,不UserItem_Name这显然是不一样的东西
  • 使用.val()设置表单输入字段的值而不是.html()
  • .attr()方法需要2个参数w如果你想设置一个属性值:1)属性名称和2)属性值。你目前只传递一个参数,所以你基本上是读取属性值,而不是设置它。

此外,如果此代码位于您在AJAX请求后注入DOM的分部视图中,则应删除$(document).ready处理程序。

+0

不,这很好,它的名字就像在html中一样后来出来 – gurehbgui 2012-07-05 09:25:05

+0

你确定吗?因为'@ Html.EditorFor(model => model.UserItem.name)'将生成:''。您是否使用自定义编辑器模板来更改ID或其他内容?因为默认情况下,这肯定会生成'id =“UserItem_name”'。 – 2012-07-05 09:28:29

+0

现在很好:)非常感谢你 – gurehbgui 2012-07-05 09:28:43

相关问题