首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么会出现"$ is not defined“错误?

为什么会出现"$ is not defined“错误?
EN

Stack Overflow用户
提问于 2011-12-30 15:25:45
回答 1查看 932关注 0票数 1

我得到了一个ActionResult TabNotes,它返回一个选项卡的视图,该选项卡在网格中显示数据库中的注释。该选项卡上有一个用于ActionResult CreateNote的按钮,该按钮将返回一个PartialView,保存笔记后,我将使用重定向回ActionResult TabNotes

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 return RedirectToAction("TabNotes", new { modelEntity = "Phrase", id = itemId});

但是,当它使用此重定向转到操作结果TabNotes时,它不会显示网格。javascript给出以下错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Uncaught ReferenceError: $ is not defined (anonymous function)
Uncaught ReferenceError: ko is not defined (anonymous function)

这并不是第一次发送到ActionResult时发生的。ActionResult TabNotes的以下部分使用断点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[...]
   Model.Grid.url = Url.Action("TabNoteData", new { id = Model.meta.entity, itemId = Model.meta.id.Value});
    }

   return View("TabNotes", Model);
 }

第一次和第二次在Model中提供相同的输入值。这个错误可能来自哪里?

Edit: Firebug显示以下错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
prompt aborted by user
throw Components.Exception...by user", Cr.NS_ERROR_NOT_AVAILABLE);        nsPrompter.js (regel 462       <Systeem>

$ is not defined
$(document).ready(function(){$('#tblTN...tes/44?cmd=refresh" id="TNPhrase44">        44?mod...=Phrase (regel 2)

ko is not defined
var viewModel=ko.mapping.fromJ...],"buttons":[],"PostAction":null}});           44?mod...=Phrase (regel 12)

下面是javascript和代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@model test.Web.Framework.Areas.Administration.Models.TabNotesModel 
@using (UI.DocumentReadyScript())
{

    if (Model.meta.id.HasValue)
    {
        UI.jQuery("#tbl" + Model.meta.modelname).flexigrid(Model.Grid);
    }
}
<form method="post" action="@Url.Action("TabNotes", new { cmd = "refresh" })" id="@Model.meta.modelname">
<div class="ui-state-highlight ui-corner-all highlight" data-bind="visible: meta.message">
    <span class="ui-icon ui-icon-info"></span><strong data-bind="text: meta.message">
     </strong>
</div>
@using (UI.BeginBlock("Administation.TabNotes", UI.Label("Notes", "Notes").ToString(), test.Web.Framework.Core.enumIcons.pencil, false, false))
{
    <table id="@("tbl" + Model.meta.modelname)">
    </table>
}
</form>
<script type="text/javascript">
    (function() {
        var viewModel=ko.mapping.fromJS(@Html.Raw(UI.JavascriptEncode(Model)));
        viewModel.getData=function() { return ko.mapping.toJSON( this  ); };   
        viewModel.setData=function(data){ 
         $('#tbl'+this.meta.modelname()).flexigrid( data.Grid);
         ko.mapping.updateFromJS(this,data); 
         };
        $('#@Model.meta.modelname').koform({viewmodel: viewModel , validate : {errorElement:'p' }  } );
        $('#@Model.meta.modelname').koform('applyBindings');
        $('#load-partial').click(function() {
            $('#partial').load('@Url.Action("CreateNote", "Entity", new {itemId = @Model.meta.id, modelEntity = "Phrase"})');
        });
        })();   
</script>


<div id="partial"></div>
<button type="button" id="load-partial">Create Note</button>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public ActionResult CreateNote(
        [ModelBinder(typeof(Models.JsonModelBinder))]
        NoteModel Model, string cmd, long? itemId, string modelEntity)
    {           
        if (cmd == "Save")
        {
            Model.meta.message = "Note saved";
            test.Database.User User = UserRepository.GetUser(1);
            Entity entity = NotesRepository.GetEntity("Phrase");
            NotesRepository.StoreNote(Model.subject, Model.text, User, entity, itemId);
            return RedirectToAction("TabNotes", new { modelEntity = "Phrase", id = itemId});
        }
        Model.meta.modelname = "CreateNote";
        Model.meta.JsViewModelType = "EditNoteModel";
        Model.meta.PostAction = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId});


        return PartialView("CreateNotePartial",Model);

        }

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    public ActionResult TabNotes([ModelBinder(typeof(Models.JsonModelBinder))]
        TabNotesModel Model, string cmd, string modelEntity, long? id)
    {
        if (modelEntity != null)
        {
            Model.meta.entity = modelEntity;
        }
        Entity entity = NotesRepository.GetEntity(Model.meta.entity);
        if (id.HasValue)
        {
            Model.meta.id = id;
        }

        if (Model.meta.id.HasValue)
        {
            Model.meta.modelname = "TN" + Model.meta.entity + Model.meta.id.Value.ToString();

            Dictionary<string, object> defaultValues = new Dictionary<string, object>();
            defaultValues.Add("Entity", entity.EntityId);
            defaultValues.Add("ItemId", Model.meta.id.Value);
            Entity noteEntity = NotesRepository.GetEntity("Note");
            var grid = UI.GetEntityFlexiGrid(noteEntity, true, true, true, true, defaultValues);
            grid.buttons.Clear();
            //grid.buttons.Add(new Button { onpress = "CreateNote", action = Url.Action("CreateNote"), name = "CreateNote", postdata = new { meta = Model.meta }});
            grid.title = "";
            Model.Grid = grid;

            Model.Grid.url = Url.Action("TabNoteData", new { id = Model.meta.entity, itemId = Model.meta.id.Value});
        }


       return View("TabNotes", Model);
    }

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public GridResult TabNoteData(string id, long itemId, FlexigridRequest request, string cmd)
    {

        GridResult returnValue = null;


        var entity = NotesRepository.GetEntity(id);
        Entity noteEntity = NotesRepository.GetEntity("Note");
        //var Acess = UIRepository.GetEntityAccess(id);

        FlexigridConfiguration grid;
        Dictionary<string, object> defaultValues = new Dictionary<string, object>();
        defaultValues.Add("Entity", entity.EntityId);
        defaultValues.Add("ItemId",itemId);
        grid = UI.GetEntityFlexiGrid(noteEntity, true, true, true, true, defaultValues);

        IQueryable q = NotesRepository.GetNotes(entity.EntityId, itemId);
        var sortField = entity.EntityFields.SingleOrDefault(c => c.Name == request.sortname);
        if (sortField == null)
        {
            request.sortname = grid.sortname;
        }
        IQueryable qdata = null;
        if (!string.IsNullOrEmpty(request.sortname) && request.sortname != "undefined")
        {
            switch (request.sortorder)
            {
                case enumFlexigridRequestSortOrder.asc:
                    qdata = q.OrderBy(request.sortname + " ascending");
                    break;
                case enumFlexigridRequestSortOrder.desc:
                    qdata = q.OrderBy(request.sortname + " descending");
                    break;
            }
        }
        if (!string.IsNullOrEmpty(request.query) && !string.IsNullOrEmpty(request.qtype))
        {
            qdata = qdata.Where(request.qtype.SanitizeFieldExpression() + ".Contains(@0)", request.query);
        }
        if (request.q != null && request.q.Length > 0)
        {
            for (int i = 0; i < request.q.Length; i++)
            {
                var type = UIRepository.GetType(id);
                var property = type.GetProperty(request.q[i]);

                System.ComponentModel.TypeConverter tc = System.ComponentModel.TypeDescriptor.GetConverter(property.PropertyType);
                string sv = request.v[i];
                if (sv == null || sv == "null")
                {
                    qdata = qdata.Where(request.q[i].SanitizeFieldExpression() + "=@0", (object)null);
                }
                else
                {
                    object v = tc.ConvertFromString(sv);
                    qdata = qdata.Where(request.q[i].SanitizeFieldExpression() + "=@0", v);
                }
            }
        }


        string settingName = "Grid." + id + ".Rp";
        var setting = UIRepository.GetQuery<test.Database.UserSetting>().SingleOrDefault(uc => uc.CreatedById == CurrentUser.UserId && uc.Name == settingName);
        if (setting == null)
        {
            setting = UIRepository.Create<test.Database.UserSetting>();
            setting.Name = settingName;
            setting.Value = request.rp.ToString();
            UIRepository.Add(setting);
        }
        else
        {
            if (request.rp.ToString() != setting.Value)
            {
                setting.Value = request.rp.ToString();
                UIRepository.Update(setting);
            }
        }

        int rowId = 0;
        var datarows = new List<object>();
        foreach (var record in qdata.Skip((request.page - 1) * request.rp).Take(request.rp).GetData())
        {
            var cellValues = new List<object>();
            foreach (var gc in grid.colModel.OrderBy(c => c.di))
            {
                cellValues.Add(gc.ToString(UI, record));
            }
            var row = new { id = rowId, cell = cellValues.ToArray() };
            datarows.Add(row);
            rowId++;
        }
        returnValue = Grid(request.page, qdata.Count(), datarows.ToList());

        return returnValue;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-30 15:32:22

该错误只能由以下三种情况之一引起:

  • 您的JavaScript文件未正确加载到您的页面
  • 您的jQuery版本不正确。发生这种情况的原因可能是有人编辑了核心文件,或者某个插件覆盖了$variable。
  • 在页面完全加载之前以及同样的情况下,在jQuery完全加载之前运行JavaScript。

您应该检查Firebug net面板,看看文件是否被正确加载。如果不是,它将被高亮显示为红色,并在其旁边显示"404“。如果文件加载正确,这意味着问题是2号。

确保所有javascript代码都在代码块中运行,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).ready(function () {
  //your code here
});

这将确保您的代码在 jQuery初始化后加载到

最后要检查的一件事是,在加载jQuery之前,确保您没有加载任何插件。插件扩展了"$“对象,所以如果你在加载jQuery核心之前加载一个插件,那么你会得到你所描述的错误。

因此,为了避免这种情况,您可以使用如下所示的"bodyguard“函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
( function($) {
   //We can now use $ as I implemented the bodyguard!
   $(document).ready(function() {
      //your code...
   });
} ) ( jQuery );
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8681002

复制
相关文章
在Java EE7框架中使用MongoDB
中心点创建应用程序的执行在企业环境中,应用程序必须安全、便携和高可用性。它还必须能够与不同的系统交互,但可控的从一个最好的位置。JEE7合并是一个重要的框架的所有特性,它的工作原理很无缝地与MongoDB。本文在创建一个Web应用程序使用MongoDB的手放在存储。 这种安排是…… 这是一个简单的、精益的CRUD应用程序,或者它的一部分,使用一些EJB和JSF JEE7的中坚分子。这个想法是为了使复位候选人在MongoDB,搜索需要的候选人根据技能人,也可以从数据库中删除一个特定候选人。 你需要什么… JE
用户1289394
2018/02/27
1.1K0
在Java EE7框架中使用MongoDB
dataTable自定义搜索框位置
dataTable 的搜索框 请参阅dataTable dom:http://www.datatables.club/reference/option/dom.html
全栈程序员站长
2022/09/14
8780
dataTable自定义搜索框位置
python 编辑框 text
print('PP4E scrolledtext') from tkinter import *
用户5760343
2022/05/13
8910
python 编辑框 text
JAVA JPA - 示例用法
JPA(Java Persistence API)是JSR(Java Specification Requests)的一部分,定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate、TopLink等。 下面的示例程序是在jboss quickStart的基础上修改而来的 1、实体Bean:Member类 1 package org.jboss.as.quickstart.hibernate4.model; 2 3 import java.io.Serializable; 4
菩提树下的杨过
2018/01/24
1.6K0
JAVA JPA - 示例用法
多个input框自动切换焦点
使用Javascript可以从多个方面增强表单字段的易用性。其中,最常见的一种方式就是在用户填写完当前字段时,自动将焦点切换到下一个字段,必须知道用户已经输入了既定长度的数据(例如电话号码),输入一个后焦点切换到下一个输入框
tianyawhl
2020/11/12
3.4K0
vim同时编辑多个文件
# 1.如果在终端中开没有打开vim,可以: 横向分割显示: vim -o filename1 filename2 纵向分割显示: vim -O filename1 filename2 # 2.如果已经用vim打开了一个文件,想要在窗口中同时再打开另一个文件: 横向分割显示: :vs filename 纵向分割显示: :sp filename # 3.窗口切换 在所有窗口中循环移动 Ctrl+ww 如果finename不存在,则会新建该文件并打开。 # 4.关闭所有窗口 :wqa
summerking
2022/09/19
1.3K0
DataTable.Select 返回DataTable
在实际编程工程中,常常遇到这样的情况:DataTable并不是数据库中的,或者DataTable尚未写到数据库,或者从数据库中读出的DataTable已经在本地被改动,又没有写回数据库(可能还要作其他改动),在这些情况下,其实只要用.NET类库中提供的DataView类的强大功能(主要是用它的RowFilter属性),就能方便地解决这类查询问题。 常有网友在网上询问怎么在DataTable中执行DataTable.Select("条件")返回DataTable,今天我在这里给个解决方法给大家参考:代码如下
跟着阿笨一起玩NET
2018/09/18
1.7K0
JSF标签大全详解
藉由以下的几个主题,可以大致了解JSF的轮廓与特性,我们来看看网页设计人员与应用程序设计人员各负责什么。
一朵灼灼华
2022/08/05
1.5K0
好看的 input 编辑框
开始 效果图 代码 html部分 <div class="inputDiv"> <input type="text" name="id" required> <span class="inputText">账号</span> </div> <div class="inputDiv"> <input type="password" name="password" required> <span class="inputText">密码</span> <input t
xlj
2021/11/24
1.6K0
好看的 input 编辑框
yolov5多个框重叠问题
NMS(Non-Maximum Suppression,非极大值抑制)是一种在计算机视觉和目标检测领域常用的技术。它通常用于在图像或视频中找出物体或目标的位置,并剔除重叠的边界框,以确保最终的检测结果准确且不重叠。 
叶茂林
2023/10/23
5650
yolov5多个框重叠问题
android之编辑框限定范围
登陆界面里我们通常都需要限定用户输入数据的范围,如出生日期,密码长度……这些设置我们早已在pc上熟悉得不得了,然而今天我们讲讲如何在android里设置编辑框的范围。 首先,我们知道,android的编辑框是EditText,而EditText有很方便的属性,就是inputType,这里我们可以设置数字,邮箱地址,密码等等的类型。 然后,如果你要设置数值的大小范围或者字符串的长度范围,那就需要我们在代码里面设置了,我们需要为EditText添加TextWatcher监听器,该监听器最重要的方法就是after
forrestlin
2018/05/23
1.6K0
pandas合并和连接多个数据框
pandas作为数据分析的利器,提供了数据读取,数据清洗,数据整形等一系列功能。当需要对多个数据集合并处理时,我们就需要对多个数据框进行连接操作,在pandas中,提供了以下多种实现方式
生信修炼手册
2020/07/02
1.9K0
JSF之经常使用注解
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116350.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/07
5760
【屏幕快捷截图无法弹出编辑框】
重装了系统之后,因为部分系统的设置导致可能没有开启通知,所以在快捷截图之后只在通知栏显示截图,无法直接显示出操作框
magize
2023/07/11
7330
【屏幕快捷截图无法弹出编辑框】
纯手工搭建JSF开发环境(JSF2.2+maven+weblogic 12c/jboss EAP 6.1+)
JSF 2.X因为种种原因(我个人觉得主要是因为推出太晚),再加上EJB2之前的设计过于复杂,引起很多开发人员对官方解决方案的反感,即使EJB3后来做了大量改进,国内也很少有人对EJB3感兴趣,目前国内主流开发架构大多采用SSH,很少有JSF 2.x + EJB 3.x的应用,但从我个人感觉来看,特别是对于从.NET转型到JAVA的web程序员而言,JSF中的很多概念其实跟.NET很接近,国外已经有越来越多的项目在采用JSF + EJB3做为技术选型,下面将详细介绍JSF的开发环境搭建.
菩提树下的杨过
2018/09/20
1.5K0
纯手工搭建JSF开发环境(JSF2.2+maven+weblogic 12c/jboss EAP 6.1+)
JSF本地联调工具实践
Tech 导读 JSF作为京东内部日常最常用的RPC组件,通过JSF扩展,为大家提供JSF扩展思路及本地联调实践。 01 背景 在项目开发中,研发同学会经历下面的过程: 图1 研发日常开发周期 但是针对团队的测试环境,涉及到几个痛点: 多人联调使用时尤其是跨部门联调时,强依赖环境稳定,频繁启停发布或者由于某些原因没有启动成功,影响的不是一个人的,而是多方的 jsf接口逻辑较多,联调环节存在隐晦的bug时,大部分做法是打点日志重启再次调用排查,如果没有发现问题,继续反复加日志重启排查。这样的过程是苦恼且费
京东技术
2022/05/12
1.4K0
JSF本地联调工具实践
验证多个class相同的input框不为空
要求,页面有多个class相同的input输入框,在提交数据的时候,进行验证,验证input框不能为空,如果哪个为空,则弹出提示:
王小婷
2020/05/26
1.8K0
验证多个class相同的input框不为空
DataTable转list
1 public static class EntityConverter 2 { 3 /// <summary> 4 /// DataTable生成实体 5 /// </summary> 6 /// <typeparam name="T"></typeparam> 7 /// <param name="dataTable"></param> 8 /// <returns></returns> 9 public static IEnu
用户6362579
2019/09/29
1.6K0
13-6 编辑多个文件和保存
八、编辑多个文件(准) 用户经常遇到需要同时编辑多个文件的情况。可能是需要对多个文件作出修改,或者是拷贝文件的部分内容到另一个文件。 用户可以通过在命令行具体指定多个文件的方式使 vi 打开多个文件。 vi file1 file2... 现在退出所处的 vi 会话,并创建一个用于编辑的新文件。 输入:wq来退出 vi 并保存做出的修改。 接下来,使用 ls 命令的部分输出在主目录创建一个用于实验的新文件。 ls -l /usr/bin > ls-output.txt 现在就用 vi 同时
见贤思齊
2020/08/17
1.2K0
datatable删除行
  1.如果只是想删除datatable中的一行,可以用DataRow的delete,但是必须要删除后让DataTable知道,所以就要用到.AcceptChanges()方法,原因是这种删除只是标识性删除,就像我们通常在数据库中用到的IsDelete字段。
全栈程序员站长
2022/07/15
2.7K0

相似问题

可编辑dataTable与inputText

13

未触发jsf datatable inputText javascript事件

11

在inputText中有多个值?(JSF)

32

JSF PrimeFaces inputText JSF

12

带有添加/编辑/删除对话框的JSF DataTable

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文