【发布时间】:2009-01-31 07:55:52
【问题描述】:
在 jQuery 中是否有任何内置支持用于基本断言检查,主要是“预期的返回元素数量”之类的东西。
例如,我可能有这样一个简单的语句:
$("#btnSignup").click(function() {
return validateForm();
);
现在$("#btnSignup") 可能无法准确返回 1 项的原因有很多:
- 您输入错误的按钮 ID 名称
- 有人错误重命名
- 页面上不存在
- 错误地有两个具有该 id 的元素
- 您正在使用 ASP.NET MVC,并且您不小心生成了带有
HtmlHelper.Button(...)而不是HtmlHelper.Submit()的按钮的 HTML。Button(...)方法不会为按钮元素创建 ID。
现在在这种情况下(以及许多情况下)我的应用程序根本无法工作,除非从选择器中返回一个项目。所以我总是想被告知$("@#btnSignup") 是否没有准确返回 1 项。那么我该怎么做呢?!如果这是一个异常或者最好是一个警告框,我很好 - 所以如果我没有在调试器中运行,那么我可以被告知。
我正在寻找类似这样的语法——它在功能上类似于 .NET 的 Single() 扩展方法。
$("#btnSignup").assertSingle().click(function() {
return validateForm();
);
or
$("#btnSignup").assertSize(1).click(function() {
return validateForm();
);
我个人认为这段代码总是可以运行并告诉那里的任何人有问题。它显然不是 performance issue 永远运行这个额外的代码。在这种情况下,如果#btnSignup 不存在,我的代码就会损坏。
我确信这个问题已经被打死了,并且有很多解决方案 - 但有人可以指出其中的一些吗?
我没有看到 jQuery 内置任何东西,我想知道最好的插件是什么。我宁愿在页面上放一些可以一直“监视”我并告诉我是否有问题的东西。我什至不会反对对错误报告服务进行 AJAX 调用。
【问题讨论】:
-
并不是说我的生活依赖于它,但是赞成/接受仍然会很好。 ;-)
-
@tomalak 你知道我实际上认为我确实点击了它,但我认为这是因为我的互联网不稳定而且我太忙于测试它而没有注意到你的投票没有通过。我在有线调制解调器上获得了 7kb/s 的上行速度和 58.34kb/s 的下行速度。无论哪种情况,都欢迎您,再次感谢!
-
互联网仍然不稳定? ;)
-
@Tomalak 快 4 年了 :-) !!!我们需要把它变成一个合适的插件