我刚刚注意到,当我的javascript调用$(Document).ready(函数.)时,我的MVC Razor HTML助手没有呈现( DOM)。因此,当我在文档中放置依赖于DOM对象的代码时,它不会找到DOM对象。
Javascript
$(document).ready(function () {
$('input:radio,select').change(function () {
DO STUFF...HTML助手
@Html.RadioButtonList(m => m.ItemType, new SelectList(Model.ItemTypes, "Name", "Name")另一个
@Html.DropDownListFor(n => n.ApartmentFloor, new SelectList(Model.ApartmentFloors, "Id", "Floor"), new { @id = "floorsSelect", @class = "exists" })通常情况下,无线电按钮和下拉列表应该得到一个.change函数,但是由于它们在添加.change时还没有呈现,所以它们没有得到该函数。
有没有办法让“html助手准备好”而不是“准备好文档”?
编辑
人们已经指出,在客户端开始呈现之前,HTML帮助程序在服务器上运行,因此也应该在此之前完成。情况似乎并非如此,因为当我调试JS“”时,HTML helpers对象还没有呈现,但是页面的其余部分呈现出来了。
因此,问题仍然存在,是否有一种方法可以添加一个"on“函数-- HTML助手对象,还是直接从cshtml文件中添加一个具有剃刀语法的"change”函数?
发布于 2013-02-15 09:58:09
我意识到我从来没有发布过我的问题的解决方案。尽管人们指出HTML助手应该在文档准备好之前就呈现出来,但对我来说似乎并非如此。因此,我所做的是将事件处理程序直接添加到HTML助手上,而不是:
@Html.RadioButtonList(m => m.MyObject, new SelectList(Model.MyObjects, "Name", "Name"), "inputChangeHandler($(this));")
工程伟大=)
发布于 2012-10-17 08:32:57
试着注册这样的事件,
$('input:radio,select').on("change" ,function () { }) ;希望这会有帮助。
https://stackoverflow.com/questions/12930151
复制相似问题