小编Bil*_*ami的帖子

限制ContentEditable div中的字符数

我在我的Web应用程序中使用了contenteditable div元素,我正在尝试提出一个限制区域中允许的字符数量的解决方案,一旦达到限制,尝试输入字符就什么都不做.这是我到目前为止:

var content_id = 'editable_div';

//binding keyup/down events on the contenteditable div
$('#'+content_id).keyup(function(){ check_charcount(content_id, max); });
$('#'+content_id).keydown(function(){ check_charcount(content_id, max); });

function check_charcount(content_id, max)
{   
    if($('#'+content_id).text().length > max)
    {
        $('#'+content_id).text($('#'+content_id).text().substring(0, max));
    }
}
Run Code Online (Sandbox Code Playgroud)

此DOES将字符数限制为"max"指定的数字,但是一旦通过jquery .text()函数设置了区域的文本,光标就会将自身重置为该区域的开头.因此,如果用户继续键入,则新输入的字符将插入文本的开头,并且将删除文本的最后一个字符.所以,我只需要一些方法将光标保持在可信区域文本的末尾.

javascript jquery contenteditable

38
推荐指数
5
解决办法
5万
查看次数

在FullCalendar中监听"日期更改"?

有没有办法将一个监听器附加到FullCalendar,只要当前查看的日期发生变化就会被触发,即如果您在月视图中,那么下个月将触发通过该日期的第一天的事件,并且在周视图中更改周数,日视图等.

唯一暴露的侦听器就是dayClick回调,但这没什么用,因为它只会在用户点击实际日期的单元格时触发,而不是例如在标题栏中按下Next/prev/today控件时.

我希望此功能能够将FullCalendar中当前查看的月份与ExtJS datepicker组件同步,因此如果在FullCalendar中更改了查看的月份,则会更新Datepicker以显示同一个月.(想想Google Calendar的UI左上角是"迷你日历",是日期选择器)

javascript extjs date fullcalendar dom-events

28
推荐指数
5
解决办法
2万
查看次数

ExtJS ComboBox下拉宽度比输入框宽度宽?

有没有办法将ExtJS(版本4)ComboBox的下拉菜单的宽度设置为宽于实际输入框的宽度?

我有一个comboxbox,我希望大约200px,但我在结果下拉列表上分页,宽度甚至不足以显示所有分页栏的控件.

这是我创建组合的代码:

var add_combo = Ext.create('Ext.form.field.ComboBox', 
    {
        id              : 'gbl_add_combo',
        store           : Ext.create('Ext.data.Store',
        {
            remoteFilter : true,
            fields : ['gb_id', 'title'],
            proxy  : 
            {
                type        : 'ajax',
                url         : 'index.php/store/get_items',
                reader      : 
                {
                    type            : 'json',
                    root            : 'records',
                    totalProperty   : 'total',
                    successProperty : 'success'
                },
                actionMethods : 
                {
                    read    : 'POST',
                    create  : 'POST',
                    update  : 'POST',
                    destroy : 'POST'
                }
            }
        }),
        listConfig:
        {
            loadingText: 'Searching...',
            emptyText: 'No results found'
        },
        queryMode       : 'remote',
        hideLabel       : true, …
Run Code Online (Sandbox Code Playgroud)

javascript user-interface combobox extjs extjs4

20
推荐指数
2
解决办法
2万
查看次数

正则表达式匹配除了所有空格以外的任何内容

我需要一个(符合javascript)正则表达式,它将匹配任何字符串,除了一个只包含空格的字符串.案例:

" "         (one space) => doesn't match
"    "      (multiple adjacent spaces) => doesn't match
"foo"       (no whitespace) => matches
"foo bar"   (whitespace between non-whitespace) => matches
"foo  "     (trailing whitespace) => matches
"  foo"     (leading whitespace) => matches
"  foo   "  (leading and trailing whitespace) => matches
Run Code Online (Sandbox Code Playgroud)

javascript regex whitespace

14
推荐指数
2
解决办法
1万
查看次数

ExtJS 4 - 网格单元事件?

在ExtJS的3.x中网格面板成分有细胞可绑定的事件包括cellclick,cellcontextmenu,celldblclick,和cellmousedown,以及这些事件监听器是通过双方rowIndex colIndex引发该事件的细胞.

在4.x中,这些事件消失了,只有item*事件(即itemclick),但是这些事件作为一个整体触发了网格的行,因此只传递了行的索引.

有没有办法确定使用这些事件单击了哪个列,还是有另一种方法将侦听器附加到单元格?

grid extjs event-handling dom-events extjs4

8
推荐指数
1
解决办法
1万
查看次数

JavaScript范围问题

作为一个试图采用更加面向对象的方法进行我的javascript编程的人,我遇到了一个绊脚石我肯定可能是非常基本的东西,但是,采取以下对象实现(假设jQuery对象可用于这段代码):

function Foo()
{
    this.someProperty = 5;
}

Foo.prototype.myFunc = function()
{
    //do stuff...
};

Foo.prototype.bar = function()
{
    //here 'this' refers to the object Foo
    console.log(this.someProperty);

    $('.some_elements').each(function()
    {
        //but here, 'this' refers to the current DOM element of the list of elements
        //selected by the jQuery selector that jquery's each() function is iterating through
        console.log(this);

        //so, how can i access the Foo object's properties from here so i can do
        //something like this?
        this.myFunc();
    });
};
Run Code Online (Sandbox Code Playgroud)

javascript oop scope

5
推荐指数
2
解决办法
164
查看次数

正则表达式解析电子邮件表单"收件人"字段

如果有一个可以处理这个问题的正确的正则表达式模式,那么从一个来自电子邮件表单"To"行的字符串中提取电子邮件地址是什么,它允许用逗号分隔地址",",分号";" ,空格或三者的任意组合.正则表达式还必须能够忽略"噪声"文本,例如,如果地址包含在"<"和">"字符中,或者在电子邮件地址旁边有实际名称.例如,从To字段中的此字符串:

"Joe Smith" <jsmith@example.com>, kjones@aol.com; someoneelse@nowhere.com mjane@gmail.com
Run Code Online (Sandbox Code Playgroud)

该模式应该能够返回以下匹配:jsmith @ example,kjones @ aol.com,someoneelse @ nowhere.com,mjane @ gmail.com

我正在使用PHP,所以如果这不能在单个正则表达式中完成,那么我肯定会对其他基于PHP的解决方案开放.

谢谢

php regex email-validation

5
推荐指数
1
解决办法
5349
查看次数

使用PHP json_encode()防止引用某些值

当使用PHP的json_encode将数组编码为JSON字符串时,是否有任何方法可以阻止函数在返回的字符串中引用特定值?我问的原因是因为我需要javascript来将对象中的某些值解释为实际的变量名,例如现有javascript函数的名称.

我的最终目标是使用输出的json作为ExtJS Menu组件的配置对象,因此引用所有内容的事实阻止我成功设置子项数组的"handler"(单击事件处理函数)等属性.

php json

5
推荐指数
1
解决办法
4167
查看次数

AngularJS - 在页面加载时将数据引导到服务中

在angularjs应用程序中,我试图使用自定义服务来保存应用程序的主要数据"项目".但是,我想在初始页面加载时将数据引导到服务中,以避免向服务器发出单独的ajax请求.这样做最干净的方法是什么?

以下是我的服务片段供参考:

app.factory('items', function() {
    var itemsService = {},
        items = [];

    itemsService.list = function() {
        return items;
    };

    itemsService.add = function() {
        /* ... */
    };

    return itemsService;
});
Run Code Online (Sandbox Code Playgroud)

在后端我使用node.js + expressjs + jade,所以我将使用以下方法将数据注入页面:

!{JSON.stringify(items)}
Run Code Online (Sandbox Code Playgroud)

bootstrapping angularjs angularjs-service

5
推荐指数
1
解决办法
4227
查看次数

在ember.js中实现"条件"后退按钮

我正在开发基于ember.js(版本1.2)的移动应用程序,我正在尝试找到实现全局菜单切换/返回按钮模式的最惯用的方式,这在许多移动应用程序中很常见.具体来说,它是一个位于固定顶部工具栏左侧的按钮,当用户在应用程序的主页/索引视图时切换隐藏的抽屉主菜单,但是当移动到子路径时,按钮显示后退箭头,并且当单击时,它将用户返回到先前查看的路线(或者如果没有先前的历史状态,则返回到索引路线,即,如果用户在加载应用时直接进入子路线).

Fyi,目前我的应用程序是根据应用程序模板中的固定顶部工具栏和菜单切换/后退按钮构建的.理想情况下,无论路由如何转换,无论是通过transitionTo()还是{{#link-to}}帮助等,此功能都将起作用.

所以基本上我想知道Ember是否在内部维护任何类型的可访问历史记录/日志,记录在应用程序生命周期内转换到的路由,以及有条件地更改切换/返回按钮的操作的最佳方式执行及其显示(也称为其图标)取决于当前路线.和/或有没有办法听到余烬的路线变化事件,所以如果需要我可以自己实现这段历史?

javascript mobile routes back ember.js

5
推荐指数
1
解决办法
4590
查看次数