问题标签 [unobtrusive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 尝试访问时不显眼地为关联创建记录?
我在两个模型之间有一个简单的 has_one/belongs_to 关系。
这是我的应用程序中的一个新关联,因此有许多记录尚未创建关联记录。
在我的整个应用程序中,我假设模型具有关联并且我正在访问它的属性和方法。但是,由于该关联不存在,我遇到了很多错误。
我想做的是在第一次通过它的任何方法和属性访问时,不显眼地动态构建关联的记录。记录中有数据并不重要,我只需要它存在,这样我调用的那些方法就可以构建数据。
编辑:我不想在我试图访问关系的所有实例上检查并创建记录,所以理想情况下,这需要在模型本身上完成,而不是在我的任何地方的控制器中完成。
有什么想法吗?
谢谢!
jquery - CakePHP 和 jQuery - 不显眼的操作
我正在尝试为删除 CakePHP 中的书签做一个不显眼的操作。尽管它工作得很好,但我怀疑必须有更好的方法来做到这一点。有人可以指出我正确的方向吗?
jquery - 使用不显眼的 Ajax,但仍在运行正在获取的页面的 Javascript
我想从没有 Javascript 的页面开始,然后添加 Javascript 的奇思妙想,最后添加一些 Ajax。
这一切似乎使东西保持清洁,我对我的第一次实验感到非常满意。然后我遇到了以下问题,我没有看到一个好的解决方案。对于这 2 个示例页面:
我想要的功能
使用 Ajax 动态加载/products/
页面上产品的一些详细信息,例如当鼠标悬停在缩略图上时。/details/<id>/
更准确地说,获取并显示页面上的简化版本/products/
。
不显眼的实现
href
悬停照片时,对相应锚点的属性发出 Ajax 请求。服务器可以响应整个/details/<id>/
页面,而 JQuery 选择器可以只剪切有趣的部分。或者,服务器可以看到请求是特殊的并且只返回有趣的部分。到目前为止一切顺利,简单干净。
问题
该/details/<id>/
页面不仅仅是 HTML。它也有自己的 Javascript 让它看起来很漂亮,因此我想在/products/
页面中重用该 Javascript。因此,我/products/
不仅要从中获取 HTML,/details/<id>/
还要复制完整/details/<id>/
页面上存在的 Javascript 行为。
我能想到的唯一(坏)解决方案
编写显式代码来复制浏览器在加载页面时所做的事情: fetch /details/<id>/
,查找所有<script>
标签,获取该 Javascript,触发加载处理程序。这是很多样板的东西,似乎很难做到正确。我显然不想写它,因为结果很简单。
我也觉得如果你真的坚持不显眼的 Ajax 并且必须有一个更优雅的解决方案,那么这是经常出现的问题。
asp.net-mvc-3 - ASP.NET MVC - 如何使用 jquery.validate.unobtrusive lib 防止双击提交?
我需要避免双击提交行为。我正在将客户端验证与不显眼的库一起使用。我有以下代码可以避免双重单击:
不幸的是,如果我的表单有一些有效字段(例如,必填字段),上面的代码仍然会被触发,因此,即使我更正了表单上的任何错误,我也无法再次提交。
验证成功后如何触发双击代码?
validation - ASP.Net MVC3 - 我们可以在 EditorTemplate 级别应用自定义客户端验证吗
如果 Model 中的某个字段绑定到 EditorTemplate,如果 Model 中的字段使用验证属性修饰,是否会为 EditorTemplate 生成 javascript 不显眼的 data-val-* 参数。
此外,如果我应用自定义客户端验证,通过使用 IClientValidatable 实现验证属性,并使用该自定义属性装饰此字段,它是否会为客户端中的 EditorTemplate 生成 data-val-* 属性,用于客户端规则我添加自定义验证属性?
我似乎没有让它工作,它不会为我发出客户端属性。
这是一个更简单的部分,也是我之前的帖子的一部分
layout - 不显眼地在购物车中添加块
对于我正在处理的模块,我想在购物车屏幕中添加一个块,我想不显眼地做它,我想将它放在购物车内容下方和其他块之前(优惠券,运费估计,总数,...)。
我已经设法做到了不显眼的部分:观察者听controller_action_layout_load_before
,如果FullNameAction是checkout_cart_index
它添加我的布局更新 xml 文件的句柄:
观察者:
和布局文件:
这样,我的 phtml 文件的内容就会显示出来,但我无法将它放在我想要的位置。
我的第一次尝试是使用该before="name.of.block"
属性,但它不起作用。如果我使用before="whatever"
它,则在checkout.cart
块内的所有内容之前,如果我使用after="whatever"
它,则在所有内容之后。简而言之,它没有考虑before
或after
考虑的内容。
查看 Magento 核心模块的 XML 布局文件,我意识到这些参数只在它们放置在其之后或之前的块位于右/左列内时才会出现before
。after
所以我的猜测是,这对那些专栏来说是特别的。
所以我的问题是,我可以在内容中指定我的块的位置吗?是的,怎么做?
另一种解决方案是异步加载块,因为我可以将 AJAX 调用的结果附加到我选择的 div 中,但如果可以的话,我宁愿以“正常”的方式进行。
谢谢阅读 :)
asp.net-mvc - 在 asp.net mvc-3 中使用 Unobtrusive ajax 时缺少上下文
我刚刚转移到 mvc-3 附带的不显眼的 ajax,但它在某一时刻出现了问题。这是我的链接
这是我的 js 函数,将在成功时调用
我发现这篇文章imran 描述了如何解决这个问题。但它涉及向 jquery.unobtrusive-ajax.js 添加一行。它有任何副作用吗?我应该更改 jquery 文件吗?如果不是,我如何在不更改 jquery.unobtrusive-ajax.js 文件的情况下获取被点击的链接的 ID
jquery - Jquery 就绪函数约定
黑白有什么区别
和
第一个代码片段只是文档就绪的简写。我不知道第二个代码片段:它做什么以及它与第一个代码片段有何不同。
asp.net-mvc-3 - jQuery.validator.unobtrusive.adapters.addMinMax 往返,在 MVC3 中不起作用
我正在使用 DataAnnotations、jQuery.validate 和 jquery.validate.unobtrusive 创建一个日期范围验证器。我已经阅读了以下内容:http: //bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html
和其他但不能发布它们(菜鸟)
以及关于 SO 的大部分帖子。我正在把头靠在墙上,任何帮助都可以用啤酒/食物/代码/等来奖励;)无论如何,这是代码:
我有一个带有以下参数的模型对象:
DayRange 是一个自定义属性类:
我的 web.config 中有以下内容:
在文档准备好之前我有以下 JS 触发器(我也尝试在文档准备好时触发它):
我究竟做错了什么?在此先感谢,乔尔
.net - 部分视图没有 data-val* 属性
我有一个带有 Html.BeginForm() 的视图,它调用在主视图模型中传递的部分视图(下面提到并且没有表单)。该模型具有数据注释。
如果我在不选择正确值的情况下尝试提交,则页面验证的初始加载效果很好。
我在页面上还有另一个按钮,如果单击它会加载页面上相同局部视图的另一个实例,使用 $.ajax() 发布到控制器,它只返回 PartialView,并将其附加到现有的 div。
如果我现在尝试提交这些动态控件的表单,尽管它们绑定到同一个模型并且虽然我设置了正确的 .ValidationMessageFor 助手,但它们不会出现验证,因为这些控件似乎不是使用 data-val 生成的* 属性。
我使用 fiddler 并发现 $.ajax 发布到控制器,生成带有简单且没有生成的 ValidationMessage 的部分视图。因此不能使用不显眼的 javascript 来添加动态控件。
是否有必要始终将视图放在表单中?在这种情况下,我将有嵌套的表单,这将无法正常工作。
编辑 1:正如 Adam Tuliper 在问题ViewContext.FormContext = new FormContext 中所提到的,生成了具有所有 data-val* 属性的部分视图。因此回答了我上面的问题。现在动态内容的验证没有触发。所以根据Erick(在评论部分),我删除了表单验证器 [form.removeData('validator');] 然后它也开始验证动态内容。
下面是部分视图
这是局部视图的模型