0

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

我被要求以这样一种方式制作我的自定义文本框,当用户按 Enter 键时,它不会生成回发,而是生成选项卡事件。在我的自定义文本框类中,我在 Render 方法中完成了此操作:

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 中创建一个新的键事件并尝试触发它,因为您无法在 which 和 charCode 上设置值,但没有成功。

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

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

4

0 回答 0