2008-12-18 41 views
0

我是新来的ASP.Net MVC和jQuery,我想要做的是做一个窗体,要么添加一个新的RockBand或更新现有的RockBand基于if rockbandid是一个空的guid或不是。我想现在是使用jQuery进行滚动的好时机。因此,第一步是制作乐队列表并在其旁边放置编辑链接。如果用户点击编辑链接,我想改变输入框的值和隐藏字段。下面的代码是第一步,试图设置输入框的值(当前有一个固定的字符串,但最终会是任何带名称)。但是,当我这样做时,我得到一个对象所需的错误。 (jQuery的包括是对的Site.Master)使用ASP.NET MVC的jQuery选择器的麻烦

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> 
<script type="text/javascript"> 
    function fillinbandname(thebandname) { 
     $('#bandname').val(thebandname); 
    } 
</script> 
<ul> 
<%foreach (DomainModel.RockBand rockband in ViewData.Model) %> 
<%{ %> 
<li><%=rockband.BandName %> <a href='javascript:fillinbandname("somesamplevalue");'>edit</a></li> 
<%} %></ul> 

<%Html.BeginForm("MakeOrUpdateRockBand", "Bands", FormMethod.Post); %> 
<input type="text" id="bandname" name="bandname" maxlength="30" /> 
<input type="hidden" id="bandid" name="bandid" value="00000000-0000-0000-0000-000000000000" /> 
<input type="submit" value="Add New Band" /> 
<%Html.EndForm(); %> 

</asp:Content> 

这感觉就像我SOOOO接近...但我失去了一些东西根本。

回答

1

你的代码没问题。你的JQuery包含可能是错误的。顺便说一句,谷歌提供免费主机的jQuery和其他API。你可以尝试更换您的jQuery包括本:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

但无论如何...检查其指向正确的文件。

1

我将您的HTML和JavaScript复制到示例文件中;它为我工作。我建议的唯一的事情是改变你的锚以下几点:

<a href='#' onclick='fillinbandname("somesamplevalue"); return false;'>edit</a> 

而且,你不一定需要一个函数来做到这一点,你可以直接在onclick事件使用jQuery。这是你的自由裁量权。

确保您的HTML正在按照您的期望生成,并确保您为每个bandname和bandid生成唯一的ID。 ID不能在HTML文档中多次出现。

+0

这也有帮助,因为我可以将它内联并使其更具可读性。谢谢! – Webjedi 2008-12-18 05:03:07

+0

我相信他计划在编辑时将唯一ID放入隐藏bandid字段的值中。 – 2008-12-18 05:04:02