Запретить действие по умолчанию - PullRequest
0 голосов
/ 18 февраля 2011

Эта страница открывается в newwindow . У меня есть одно текстовое поле и две кнопки (h: commandbutton и a4j: commandButton).

Я перемещаю (устанавливаю) курсор в текстовое поле.

Моя проблема в том, что я нажимаю кнопку ввода из текстового поля, затем автоматически вызывает действие h: comandButton и закрывает новое окно . Как этого избежать.

Но мне нужно, когда я нажимаю кнопку ввода, переместите курсор в a4j: commandButton

<f:view>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript">

            function a4jButtonClick()
            {
                alert("A4J Command Buton clicked...");
            }
        </script>

    </head>
    <body>
        <h:form id="sampleForm">
            <rich:panel id="samplePanel">

            <h:outputText value="User Name : "/>
            <h:inputText/>

            <h:commandButton value="Closing-CommandButton" 
                             onclick="javascript:window.close();return false;"/>

            <a4j:commandButton value="A4JCommandButton" onclick="a4jButtonClick()"/>                      

            </rich:panel>
        </h:form>
    </body>
</html>
</f:view>

Если я нажму кнопку ввода из текстового файла, я хочу вызвать предупреждение скрипта («A4J Command Buton clicked ...»);

Помоги мне. Спасибо заранее.

Ответы [ 2 ]

1 голос
/ 18 февраля 2011

Попробуйте добавить return false в обработчик onclick:

<h:commandButton value="HCommandButton" onclick="hButtonClick();return false;"/>
<a4j:commandButton value="A4JCommandButton" onclick="a4jButtonClick();return false;"/>

Но тогда ваша форма не будет отправлена ​​при нажатии кнопок.

0 голосов
/ 18 февраля 2011

Когда вы нажимаете Enter / Return на клавиатуре, активируется первая кнопка в разметке .

Таким образом, вам нужно изменить порядок кнопок в разметке следующим образом:

<a4j:commandButton value="A4JCommandButton" onclick="a4jButtonClick()"/>
<h:commandButton value="Closing-CommandButton" onclick="javascript:window.close();return false;"/>

Имейте в виду, что вы все еще можете их стилизовать в исходном порядке, чтобы дизайн не изменился.

...