当JSF生成HTML代码时,textarea的onPaste属性在哪里?
我把它放在JSF页面中当JSF生成HTML代码时,textarea的onPaste属性在哪里?,html,jsf-2,Html,Jsf 2,我把它放在JSF页面中 <textarea id="textarea" rows="4" cols="50" onKeyPress="validate(event)" onPaste="validatepaste(event)"></textarea> 由于JSF只不过是一个HTML代码生成器,所以我无法理解它对onPaste属性的
<textarea id="textarea" rows="4" cols="50"
onKeyPress="validate(event)" onPaste="validatepaste(event)"></textarea>
由于JSF只不过是一个HTML代码生成器,所以我无法理解它对onPaste属性的作用以及为什么不支持它
其次。如何在此htmltextarea
上实现值绑定
编辑:
因为onkeyup是受支持的,并且是标准化的
使用
时,为什么onkeyup功能会中断
我无法实现与html文本区域字段相同的功能
以下功能可防止用户通过键盘输入或复制粘贴手动输入时,字母文字被替换为“”。
以下是片段:
function validate(e) {
console.log(e)
var invalidcharacters = /[^0-9]/gi
var phn = document.getElementById('textarea');
if (invalidcharacters.test(phn.value)) {
//e.value = e.value.replace(invalidcharacters, "");
console.log("REPLACING");
newstring = phn.value.replace(invalidcharacters, "");
phn.value = newstring
}
}
它可以很好地处理普通html,如下所示。这是
同样的功能是无法实现的
<h:inputTextarea value="#{myBean.myValue}" id="compTextArea"
onkeyup="validate(event)"></hinputTextarea>
并替换此行var phn=document.getElementById('textarea')代码>与document.getElementById('compTextArea')
为什么这看起来很奇怪
<textarea ... onKeyPress="..." onPaste="...">
其次,onpaste
属性不属于任何标准规范的一部分。另见。JSF并不是为了产生非标准兼容代码而设计的,因此它不能作为标准组件的属性使用(然而,一旦它成为DOM标准的一部分,它可能会出现在未来的JSF版本中)
但是,您仍然可以使用新的JSF 2.2“HTML5友好标记”功能实现它:
...
请注意,由于onpaste
不是任何当前标准的一部分,因此其功能取决于所使用的webbrowser品牌/版本。您的Chrome版本显然不支持它,因此它在DOM检查器中不可见(但在原始HTML源代码中仍然可见,您可以通过右键单击、查看源代码或按Ctrl+U键看到)
另见:
非常感谢您的回答。我比你高。但我发现onkeyup事件有些奇怪。请参阅edited partment.JavaScript,因为它是一种客户端语言,与服务器端的JSF源代码不直接兼容。JavaScript与JSF生成的HTML输出一起工作,就像在客户端一样。document.getElementById('textarea')代码>不返回HTML DOM树中的现有元素。您应该在JS控制台中看到一个错误。检查生成的HTML输出中的实际元素ID。这是另一个问题。另请参见a.o.特别检查此
建议,这样您就根本不需要getElementById()
。您的技能确实令人惊叹。相信我,我已经浏览了网络上关于你生活的每一个材料。你所遭受的痛苦和ANSI DOS批处理程序选择DOS游戏…我享受一切,但有一件事让我时常感到不安,那就是你对雅典人的信仰。每次我看到你的名字在网上闪现时,我都感到很难过。不客气。我确实只相信经验和事实。这也是为什么我的答案如此好的原因(因为它们是基于它们的)。然而,我完全尊重其他宗教。人们只需要有一个社区来消耗能量。
<h:inputTextarea value="#{myBean.myValue}" id="compTextArea"
onkeyup="validate(event)"></hinputTextarea>
<textarea ... onKeyPress="..." onPaste="...">
<textarea ... onkeypress="..." onpaste="...">
<html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough">
...
<h:inputTextarea ... a:onpaste="..." />