Tag: javascript

当输入字段为空时,使用jQuery来阻止表单提交

解决方案应该非常简单。 我想在输入框中找不到任何值时阻止表单正确提交。 这是我的JSFiddle: http : //jsfiddle.net/nArYa/7/ //标记 <input type="text" placeholder="Your name*" autocomplete=off name="name" id="user_name" Sign Up // jQuery的 if ($.trim($(“#email, #user_name”).val()) === “”) { $(‘#form’).submit(function(e) { e.preventDefault(); alert(‘you did not fill out one of the fields’); }) } 正如您在JSFiddle中看到的那样,问题是当我在两个字段中输入内容时,会弹出警告框STILL。 我很难搞清楚原因。 在我的if($ .trim($“#email,#user_name”)。val())===“”)中是否有问题?

是否可以创建导航祖先的自定义jQuery选择器? 例如a:最近或:父母选择器

我编写了很多jQuery插件,并且我一直使用自定义jQuery选择器:focusable和:closeto来提供常用的filter。 例如:focusable看起来像这样 jQuery.extend(jQuery.expr[‘:’], { focusable: function (el, index, selector) { return $(el).is(‘a, button, :input[type!=hidden], [tabindex]’); }; }); 并像任何其他选择器一样使用: $(‘:focusable’).css(‘color’, ‘red’); // color all focusable elements red 我注意到没有一个可用的jQuery选择器可以导航回祖先。 我认为这是因为它们的设计遵循了向下钻取的基本CSS选择器规则。 以此示例:找到具有焦点的输入的标签: $(‘input:focus’).closest(‘.form-group’).find(‘.label’); 我需要插件的等效类型的复杂选择器, 因此将这样的选择器作为单个字符串提供是有用的 (因此它们可以作为插件的选项提供)。 例如: $(‘input:focus < .form-group .label'); 要么 $(‘input:focus:closest(.form-group) .label’); 注意:请假设更复杂的操作并且需要祖先导航(我意识到这个特定的例子可以用has来完成,但这没有帮助)。 例如它还需要支持这个: options.selector = ‘:closest(“.form-group”) .label’; $(‘input’).click(function(){ var label = $(this).find(options.selector); }); 是否可以扩展jQuery选择器来扩展搜索行为(而不仅仅是添加更多的布尔filter)? 如何扩展自定义搜索行为? […]

什么是更好的做法:eval或追加脚本?

我需要执行一些我从一些AJAX调用中获得的自定义JavaScript。 我可以对字符串进行eval ,或者我可以将它附加到DOM的script标签中。 哪种方法会更好? var dynamicScript = ‘alert(\’Hello world!\’);’; 方法1 – 脚本 : var x = ” + dynamicScript +”; $(document.body).append(x); 方法2 – 评估 : eval(dynamicScript); 什么方法更好,为什么? 还是有更好的选择?

事件未在FireFox中定义,但在Chrome和IE中确定

我使用jQuery生成HTML: $(“”) .append(“demo”) .click(function () { DemoFunc(event, value.Id) }) 这适用于Chrome和IE8,但在FireFox中我收到错误:“事件未定义”。 我改变了这样的代码: .attr(“onclick”, “DemoFunc(event, ” + value.Id + “)”) 它适用于Firefox,但不适用于Chrome和IE。 DemoFunc = function (e, assocGroupId) { var target = (e.target) ? $(e.target) : $(e.srcElement); …. } 为什么!? 救命!!

跨域jquery得到

我看到了一些带有ajax的跨域示例,但它不起作用。 $(document).ready(function () { var url = “http://api.twitter.com/1/statuses/user_timeline.json?screen_name=AssasNet&include_rts=1”; $.get(url, function (data) { console.log(data) alert(data); }); }); 我尝试使用chrome并给出以下错误: XMLHttpRequest cannot load http://api.twitter.com/1/statuses/user_timeline.json?screen_name=AssasNet&include_rts=1. Origin null is not allowed by Access-Control-Allow-Origin.

通过Javascript将二进制数据下载为文件

我正在对返回二进制数据的API进行ajax调用。 我想知道是否有可能获取二进制数据并在新窗口中为客户端显示它? 这就是我现在正在做的事情。 问题是,文档打开了,但它完全是空白的。 $.ajax({ type: “POST”, url: apiURL, data: xmlRequest, complete: function(xhr, status) { var bb = new window.WebKitBlobBuilder(); // Append the binary data to the blob bb.append(xhr.responseText); var blobURL = window.webkitURL.createObjectURL(bb.getBlob(‘application/pdf’)); window.open(blobURL); } }); 有任何想法吗?

jQuery AJAX在窗口卸载时触发错误回调 – 如何过滤掉卸载并仅捕获真正的错误?

如果我离开$ .ajax()请求中间的页面,则会触发错误回调。 我已经在Safari和FF中测试了GET和POST请求。 一个可能的解决方案是在页面卸载时中止所有AJAX请求,但是在卸载之前调用error handling程序,所以这似乎不可能。 我希望能够通过礼貌警报或modal dialog在客户端优雅地处理诸如500s之类的REAL错误,但我不希望在用户离开页面时调用此处理。 我该怎么做呢? – (也很奇怪:当离开页面时,error handling程序会说textStatus参数是“error”,与接收500 /错误请求时抛出的相同。)

设置Kendo UI网格高度100%的包装器

我知道有一种简单的方法可以通过API设置Kendo UI网格的固定高度,但是为了满足我们的特定需求,我需要让网格在其包装器的整个高度上展开。 使用以下标记结构,我将.wrapper设置为height:600px ,我试图给.k-grid-content height:100%但它不会扩展。 #grid以height:100%扩展到100% height:100%但我也需要扩展内部内容。 我如何实现这一目标? 这是演示JS BIN

Twitter Bootstrap:删除/切换类似复选框的按钮组的活动状态

使用twitters Bootstrap,我创建了一个带有radiobox行为的按钮组,让用户可以在不同的状态之间进行选择。 这开箱即用。 我在这里安排了一个jsFiddle示例: http : //jsfiddle.net/jpxWj/ 我尝试(并且想要)的是当我第二次单击活动按钮时可以删除按下的状态。 我尝试使用jQuerys removeClass removeClass()从btn类中删除active类,但它不起作用。 (我也试过用.on()删除但这只是保持活动始终隐藏/删除)

检测所有浏览器中是否打开了console / devtools

我正在尝试创建一个在打开或关闭任何浏览器控制台时运行的脚本。 有没有办法检测所有浏览器(Firefox / IE / Chrome / Safari / Opera)中的浏览器控制台是否通过JavaScript,jQuery或任何其他客户端脚本打开?