在自定义文本框中输入选项卡javascript(IE,Chrome和FF)

时间:2013-08-21 11:43:24

标签: javascript asp.net vb.net

我知道这不是一个新主题,但自上周五以来我一直坚持这个......任何......

我被要求以一种方式制作我的自定义文本框,当用户点击进入时,它不会生成回发,而是生成制表符事件。在我的自定义文本框类中,我已经在我的渲染方法中完成了这个:

Me.Attributes.Remove("onkeydown")
Me.Attributes.Add("onkeydown", "if(event.keyCode == 13){return event.keyCode = 9;})

它只适用于IE。在FF上,你使用Which属性,但我发现它是一个只读属性。所以我假设您无法在Chrome中的此属性中设置值。

这是我的第二次尝试:

Me.Attributes.Remove("onkeydown")
Me.Attributes.Add("onkeydown", "if(navigator.userAgent.indexOf('MSIE') != -1){if(event.keyCode == 13){return event.keyCode = 9;}} if(navigator.userAgent.indexOf('Firefox') != -1){if(event.which == 13){return event.which = 9}} if(navigator.userAgent.indexOf('Chrome') != -1){if(event.keyCode == 13){return event.keyCode = 9;}}")

有效。它正确地检测我正在使用哪个浏览器,但是当设置键码值时,仅在IE上工作。

我做了一些研究,甚至在这里问了一个问题,我被告知你可以在一个dll项目中使用js文件作为嵌入式资源。我已经遵循了一些例子,无法使其发挥作用。我正在使用VS2005和VB.net。

我的另一个选择是在javascript中创建一个新的键事件并尝试触发它,因为你不能设置值和charCode,但没有成功。

我也尝试过插入内联jquery。也没用。

在说内联javascript是一种不好的做法之前,我已经知道这是一种不好的做法。但是这些控件正被用于一个巨大的(真的......它是巨大的)系统中。最轻微的改变可能搞砸了。如果有可能我想使用像我试图使用的内联javascript。我怎么能用javascript模拟tab事件?如果不可能,有人可以向我解释我如何将js文件添加为嵌入式资源吗?

0 个答案:

没有答案