2012-07-05 39 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

相關問題