小编ESD*_*tor的帖子

jQuery UI Autocomplete JSON给出错误:Uncaught TypeError:无法使用'in'运算符来搜索'62'

我在使用自动填充功能在我的页面上工作时遇到了很多麻烦.当我在搜索输入中输入2个字符("OW")时,我得到预加载器图像(见下文),但它永远不会消失,我从未得到自动完成弹出窗口.在Chrome中查看控制台显示:

Uncaught TypeError: Cannot use 'in' operator to search for '62' in [{"value":103,"label":"FLOWER"},{"value":105,"label":"YELLOW"}] 
Run Code Online (Sandbox Code Playgroud)

以下是要返回的实际字符串(通过在成功块中添加警报(数据)来确认):

[{"kwrdID":103,"kwrdKeyWord":"FLOWER"},{"kwrdID":105,"kwrdKeyWord":"YELLOW"}]
Run Code Online (Sandbox Code Playgroud)

这是自动完成的主要代码

$("#searchInput").autocomplete({
source: function (request, response) {
    $.ajax({
        url: '@Url.Action("GetKeywords", "Home")',
        dataType: "json",
        data: {
            SearchTerm: request.term
        },
        success: function (data) {
            response($.map(data.keywords, function (item) {
                return {
                    label: item.kwrdKeyWord,
                    value: item.kwrdID
                }
            }));
        }
    });
},
    minLength: 2
});
Run Code Online (Sandbox Code Playgroud)

最后,这是预加载器(以防它是相关的).

$(document).ajaxStart(function () {
    var position = $('#divParent').position();
    position.left += (($('#divParent').width() / 2) - ($('#preloader').width() / 2));
    position.top += (($('#divParent').height() / 2) - ($('#preloader').height() / …
Run Code Online (Sandbox Code Playgroud)

ajax jquery json jquery-ui autocomplete

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

jQuery .show('slide',{direction:'right'})不起作用,但.show('slide')确实有效

我正在顶层菜单(ListItems)的开头插入菜单选项并使用

$('#newMenuItem').show('slide');
Run Code Online (Sandbox Code Playgroud)

成功.但是,我不喜欢它从左上角滑入的方式,所以我把它改成了

$('#newMenuItem').show('slide', { direction: 'right' });
Run Code Online (Sandbox Code Playgroud)

不幸的是,一旦我改变了它,我就不再得到新的物品了.实际上,没有比上面一行更低的代码被执行了.

有没有明显的理由说明这不起作用?我正在使用Visual Studio 2012附带的jquery-1.7.1.

jquery show slide

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

MVC将Base64字符串转换为Image,但是...... System.FormatException

我的控制器在此代码中的请求对象中获取上传的图像:

[HttpPost]
public string Upload()
{
    string fileName = Request.Form["FileName"];
    string description = Request.Form["Description"];
    string image = Request.Form["Image"];

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

image的值(至少在它的开头)看起来很像这样:

data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAYABgAAD/7gAOQWRvYmUAZAAAAAAB/...
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下内容进行转换:

byte[] bImage = Convert.FromBase64String(image);
Run Code Online (Sandbox Code Playgroud)

但是,这会产生System.FormatException:"输入不是有效的Base-64字符串,因为它包含非基本64个字符,两个以上的填充字符或填充字符中的非法字符."

我觉得问题是至少字符串的开头不是base64,但对于我所知道的一切都不是.在解码之前我需要解析字符串吗?我错过了完全不同的东西吗?

c# asp.net-mvc base64 form-data

6
推荐指数
2
解决办法
6492
查看次数

如果在拖动操作期间显示hoverClass,则Droppable项不显示hoverClass

我知道标题令人困惑,但问题很容易复制.

我的页面上有一些可以放置的元素(jQueryUI),hoverClass显示它们被拖动的时间.但是,我有一些隐藏的元素,有时在拖动过程中显示,然后不应该像他们应该的那样响应他们的hoverClass.

我在这里有一个显示这种情况的jsFiddle ,但是,如果你继续拖动div最终listItems开始显示他们的hoverClass.但是,在我的网站上这永远不会发生...... hoverClass永远不会出现在新显示的项目上.

HTML

<ul>
    <li>Row1</li>
    <li>Row2</li>
    <li>Row3<span id="More">MORE...</span></li>
    <li style="display: none;">Row4</li>
    <li style="display: none;">Row5</li>
</ul>
<div id="DragMe">DragMe!</div>
Run Code Online (Sandbox Code Playgroud)

CSS

#DragMe {
    position: absolute;
    height: 100px;
    width: 100px;
    border: 1px solid black;
    background-color: RGBA(255,255,255,0.5);
}
.DragOver {
    background-color: #000000;
    color: #FFFFFF;
}
#More {
    margin-left: 10px;
}
Run Code Online (Sandbox Code Playgroud)

JavaScript的

$('#DragMe').draggable({
    cursorAt: {top: 50, left: 50}
});

$('li').droppable({
    hoverClass: 'DragOver'
});

$('#More').droppable({
    over: function() {
        $('li').show();
    }
});
Run Code Online (Sandbox Code Playgroud)

有什么我可以改变,以使这工作正常吗?

jquery drag-and-drop jquery-ui jquery-ui-draggable jquery-ui-droppable

3
推荐指数
1
解决办法
3088
查看次数