jQuery创建的代码上的JavaScript永远不会被调用
这是我在ASP.NETMVC中的观点jQuery创建的代码上的JavaScript永远不会被调用,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,这是我在ASP.NETMVC中的观点 <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Administration.Master" Inherits="System.Web.Mvc.ViewPage" %> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> </asp:Content> &
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Administration.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="HeadContent" runat="server">
<script type="text/javascript">
var ddlContentTypes;
$(document).ready(function () {
ddlContentTypes = $("#ContentTypes");
ddlContentTypes.bind("change", loadCreate);
loadCreate();
});
function loadCreate() {
var typeId = $("#ContentTypes option:selected").val();
$.get('~/' + typeId + '/Create', function (data) {
$("#CreateForm").html(data);
});
$("fieldset input").each(function (index, item) {
$(item).attr("disabled", true);
});
}
</script>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
<h2>
<%=Resources.Localize.CreateWidget %></h2>
<p>
<% Html.RenderPartial("ContentTypeSelector"); %></p>
<div id="CreateForm">
</div>
</asp:Content>
从不跑步。字段集标记在响应中,因此您在这里看不到它,但它在那里-所有内容都返回正常(我与Firebug进行了检查)
为什么上面两行JS从来没有运行过或者没有任何效果?我想你的问题就在这里:
$.get('~/' + typeId + '/Create', function (data) {
$("#CreateForm").html(data);
});
应该是:
$.get("<%=ResolveUrl("~/") %>" + typeId + "/Create", function (data) {
$("#CreateForm").html(data); // thanks Peter
$("fieldset input").attr("disabled", "disabled"); // thanks Nick
});
$.get(“+typeId+”/Create”,函数(数据){
$(“#CreateForm”).html(数据);//谢谢Peter
$(“字段集输入”).attr(“禁用”、“禁用”);//谢谢
});
这可能是抛出了一个js异常,它永远不会进入fieldset循环。我认为您的问题在于:
$.get('~/' + typeId + '/Create', function (data) {
$("#CreateForm").html(data);
});
应该是:
$.get("<%=ResolveUrl("~/") %>" + typeId + "/Create", function (data) {
$("#CreateForm").html(data); // thanks Peter
$("fieldset input").attr("disabled", "disabled"); // thanks Nick
});
$.get(“+typeId+”/Create”,函数(数据){
$(“#CreateForm”).html(数据);//谢谢Peter
$(“字段集输入”).attr(“禁用”、“禁用”);//谢谢
});
这可能会抛出一个js异常,它永远不会进入fieldset循环。调用此代码时,fieldset标记不存在。尝试将此代码移动到success函数的内部,它可能会起作用
function loadCreate() {
var typeId = $("#ContentTypes option:selected").val();
$.get('~/' + typeId + '/Create', function (data) {
$("#CreateForm").html(data);
$("fieldset input").each(function (index, item) {
$(item).attr("disabled", true);
});
});
}
调用此代码时,字段集标记不存在。尝试将此代码移动到success函数的内部,它可能会起作用
function loadCreate() {
var typeId = $("#ContentTypes option:selected").val();
$.get('~/' + typeId + '/Create', function (data) {
$("#CreateForm").html(data);
$("fieldset input").each(function (index, item) {
$(item).attr("disabled", true);
});
});
}
很难说没有看到呈现的HTML。你能补充一下吗?你有很多问题要处理。结合你目前得到的两个答案,你将朝着正确的方向前进。如果不看到呈现的HTML,很难说。你能补充一下吗?你有很多问题要处理。将迄今为止得到的两个答案结合起来,你将朝着正确的方向前进。如果你和hunter将答案结合起来,你就可以开始用操作码解决多个问题。你可以跳过使用
每个(…)
函数,只需应用attr(…)
到选择器以获得更简洁的代码。如果您和hunter结合您的答案,您可以开始解决OP代码的多个问题。您可以跳过使用每个(…)
函数,只需将attr(…)
应用到选择器以获得更简洁的代码。