目前,我的tr:inputText
只有在按下按钮后才能提交。当我点击输入文本上的输入按钮时,我正在尝试让它也提交。它似乎试图倾听,但事实并非如此。任何帮助将不胜感激。
起初,我试图使用内置的特立尼达功能来实现这一点,但现在我正在尝试使用 JavaScript 来实现这一点。我该怎么办?
<SCRIPT LANGUAGE="JavaScript">
function enter(event) {
var acctNumber = document.getElementById('acctNumber');
acctNumber.addEventListener('keypress', function enter(event))
{
if (event.keyCode == 13) {
<!-- document.getElementById('Search').click();-->
<!-- document.send.submit(); -->
submitForm();
}
}
}
function submitForm() {
$('#send').submit();
}
</SCRIPT>
<ui:composition template="#{processPanelLayoutManager.layoutTemplate}">
<ui:define name="processTitle">
</ui:define>
<ui:define name="processPanel">
<tr:form usesUpload="true" id="send" >
<trh:tableLayout width="100%" cellPadding="10" borderWidth="0"
id="Table">
<trh:rowLayout>
<trh:cellFormat columnSpan="4">
<ocau:inlineMessage />
</trh:cellFormat>
</trh:rowLayout>
<tr:panelBox styleClass="roundedPanelPrimary">
<trh:rowLayout halign="center">
<trh:cellFormat halign="center">
<tr:inputText styleClass="tabdata" contentStyle="normalContent"
id= "acctNumber"
label="Account Number"
type="enter"
value="#{fraudSearch.fraudCustomerReqtUIModelBean.accountNumber}"
>
</tr:inputText>
</trh:cellFormat>
<trh:cellFormat halign="left">
<tr:commandButton text="Search" id="Search"
action="#{fraudSearch.getIBSNotesData}" styleClass="Button"
halign="center"
>
</tr:commandButton>
</trh:cellFormat>
</trh:rowLayout>
</tr:panelBox>
<tr:panelBox styleClass="roundedPanelPrimary"
rendered="#{fraudSearch.displaySearchResults}">
<trh:tableLayout cellPadding="10" borderWidth="0" id="Table"
width="100%">
<trh:rowLayout>
<tr:panelTabbed position="above" inlineStyle="width:auto">
<tr:showDetailItem text="IBS Data Extract" id="IBSDataExtract"
immediate="true">
<ui:include
src="/pages/recovery/fraud/displayFraudRPAIBSDataExtract.jspx">
</ui:include>
</tr:showDetailItem>
<!--
<tr:showDetailItem text="Non-Monetary Data" id="IBSNonMonData"
immediate="true">
<ui:include
src="/pages/recovery/fraud/displayFraudRPANonMonetaryData.jspx">
</ui:include>
</tr:showDetailItem>
-->
</tr:panelTabbed>
</trh:rowLayout>
</trh:tableLayout>
</tr:panelBox>
</trh:tableLayout>
</tr:form>
</ui:define>
</ui:composition>
<script language="javascript">
document.forms["send"].focus();
</script>
您的事件侦听器似乎语法不正确; 在事件参数之后而不是块的右大括号之后有第二个括号。
脚本标签中也有 HTML 注释 - 将它们更改为与 JS 兼容的注释。
我已经在这个代码笔中修改了这一点,事件侦听器正在工作。
使用您的原始脚本:
<SCRIPT LANGUAGE="JavaScript">
function enter(event) {
var acctNumber = document.getElementById('acctNumber');
acctNumber.addEventListener('keypress', function enter(event)
{
if (event.keyCode == 13) {
// document.getElementById('Search').click();
// document.send.submit();
submitForm();
}
});
}
function submitForm() {
$('#send').submit();
}
</SCRIPT>
此外,我建议您研究一些事情以避免将来出现此类问题:
- 检查控制台日志;此错误非常明显
- 尽可能使用严格相等 (===( 以避免不必要的错误
- 通过短绒运行代码