Возможно, я не понял вопрос правильно, но не можете ли вы использовать keyup
, если хотите захватить оба входа?
$("input").bind("keyup",function(e){
var value = this.value + String.fromCharCode(e.keyCode);
});
<h:commandLink id="myCommandLink" action="#{myPageCode.doDelete}">
<h:outputText value="#{msgs.deleteText}" />
</h:commandLink>
<script type="text/javascript">
if (document.getElementById) {
var commandLink = document.getElementById('<c:out value="${myPageCode.myCommandLinkClientId}" />');
if (commandLink && commandLink.onclick) {
var commandLinkOnclick = commandLink.onclick;
commandLink.onclick = function() {
var result = confirm('Do you really want to <c:out value="${msgs.deleteText}" />?');
if (result) {
return commandLinkOnclick();
}
return false;
}
}
}
</script>
Другие действия JavaScript (как проверка входа формы и т.д.) могли быть выполнены путем замены вызова к confirm()
с вызовом к другой функции.
В JSF 1.2 можно указать onclick события.
Кроме того, другие библиотеки, такие как MyFaces или IceFaces реализуют "onclick" обработчик.
Что необходимо было бы сделать, затем просто:
<h:commandLink action="#{bean.action}" onclick="if(confirm('Are you sure?')) return false;" />
Примечание: Вы не можете просто сделать return confirm(...)
поскольку это заблокирует остальную часть JavaScript в onClick событии от случая, который эффективно мешал бы Вашему действию произойти независимо от того, что возвращенный пользователь!
Можно все еще использовать onclick. Спецификация набора рендеринга JSF (см., Кодирует Поведение), описывает, как ссылка должна обработать его. Вот важная часть (что она представляет для onclick):
var a=function(){/*your onclick*/}; var b=function(){/*JSF onclick*/}; return (a()==false) ? false : b();
Так Ваша функциональная привычка быть переданным объект-событие (который не является надежным перекрестным браузером так или иначе), но возвращающий true закоротит представление.
Если Вы хотите выполнить что-то, прежде чем форма будет отправлена для подтверждения, например, попробуйте событие формы onSubmit. Что-то как:
myform.onsubmit = function(){confirm("really really sure?")};
Это никогда не работало на меня,
onclick="if(confirm('Are you sure?')) return false;" />
но это сделало
onclick="if(confirm(\"Are you sure?\"))return true; else return false;"