powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос то ли по javascript то ли по jboss-seam (потеря TAB-фокуса!)
10 сообщений из 10, страница 1 из 1
вопрос то ли по javascript то ли по jboss-seam (потеря TAB-фокуса!)
    #38095650
ViktorWM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть на форме простой эдит:

<h:inputText id="ww" value="#{myForm.myFieldToCheck}" tabindex="1"

на который попадает фокус ввода. После него - по нажатии клавиши таб фокус должан переходить к другому компоненту (в данном случае h:commandButton) у которой tabindex="2" ! Это работает, но только если не трогать данные в эдите. Как только их значение меняю с клавиатуры, они очевидно синхронизируются с backend-ом, происходит что-то типа рефреша и фокус теряется! (его нет ни на эдите ни на баттоне)

Как это побороть? (т.е. чтоб фокус переходил к следующему tab-orderу и рефреш ему бы не мешал)?
...
Рейтинг: 0 / 0
вопрос то ли по javascript то ли по jboss-seam (потеря TAB-фокуса!)
    #38095663
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViktorWM,

Поумолчанию рефреша не должно быть, если только ты его не делаешь самостоятельно, я не уверен, но единственный способ это избавиться от рефреша.
...
Рейтинг: 0 / 0
вопрос то ли по javascript то ли по jboss-seam (потеря TAB-фокуса!)
    #38095707
ViktorWM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTkViktorWM,

По умолчанию рефреша не должно быть, если только ты его не делаешь самостоятельно, я не уверен, но единственный способ это избавиться от рефреша.

Привет! Ну НЕ ДЕЛАЮ я рефреша сам!
К тому коду, что я привел, поясню, что на бэкэнде есть самый обычный сеттер:

Код: java
1.
2.
3.
public void setMyFieldToCheck(String myFieldToCheck) {
		this.myFieldToCheck = myFieldToCheck;
}



и больше ничего!

Видно кстати, как фокус сначала (на доли секунды!) садится на нужную h:commandButton а потом сразу гад улетучивается! :-(
Я уж даже и такие извраты внедрял:

Код: javascript
1.
<a:support event="onchange" oncomplete="jQuery('#myForm:myCommandBtn').focus();" ajaxSingle="true"/>



Вообще уйму времени на всякие эксперименты убил! Ниче не помогает! Подскажите кто-нибудь плиз!!!
...
Рейтинг: 0 / 0
вопрос то ли по javascript то ли по jboss-seam (потеря TAB-фокуса!)
    #38095735
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сам не делаешь рефреша значит его и нет, покажи что генерят тебе твои теги в итоге. От этого и нужно плясать.
...
Рейтинг: 0 / 0
вопрос то ли по javascript то ли по jboss-seam (потеря TAB-фокуса!)
    #38095768
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViktorWM
Код: javascript
1.
<a:support event="onchange" oncomplete="jQuery('#myForm:myCommandBtn').focus();" ajaxSingle="true"/>


Вообще уйму времени на всякие эксперименты убил! Ниче не помогает! Подскажите кто-нибудь плиз!!!
все дело в клиентской части, а что там точно происходит, без исходного кода страницы сказать могут только телепаты.
Есть подозрение, что там используются компоненты richfaces, хотя теги этой библиотеки обычно начинаются с a4j: , а не a:. Вот там впольне могут быть ajax запросы, но точно об этом сказать нельзя не видя кода. На обычном jsf табы должны работать.
По яваскрипту могу сказать , что селектор #myForm:myCommandBtn неправильный, должно быть #myForm\:myCommandBtn
...
Рейтинг: 0 / 0
вопрос то ли по javascript то ли по jboss-seam (потеря TAB-фокуса!)
    #38095782
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
страницу запости
...
Рейтинг: 0 / 0
вопрос то ли по javascript то ли по jboss-seam (потеря TAB-фокуса!)
    #38096341
ViktorWM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanra Есть подозрение, что там используются компоненты richfaces, хотя теги этой библиотеки обычно начинаются с a4j:
, а не a:.

да, еcть у меня компоненты richfaces, но тэги у них естественно:
xmlns:rich=" http://richfaces.org/rich"
а у аякс:
xmlns:a=" http://richfaces.org/a4j"

ivanraПо яваскрипту могу сказать , что селектор #myForm:myCommandBtn неправильный, должно быть #myForm\:myCommandBtn
не помогло.
...
Рейтинг: 0 / 0
вопрос то ли по javascript то ли по jboss-seam (потеря TAB-фокуса!)
    #38096367
ViktorWM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никстраницу запости

ну ok, )))) но прозьба ногами сильно не пинать, это одна из моих самых первых работ с xhtml

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:s="http://jboss.com/products/seam/taglib"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:a="http://richfaces.org/a4j"
    template="/layout/template.xhtml">

<ui:define name="body">
 

   <h:form id="myForm">

<script type="text/javascript" language="JavaScript">
function setFocusEdit1()
{ 
  document.getElementById('myForm:ww').focus();
}
</script>

<script type="text/javascript" language="JavaScript">
function setFocusEdit2()
{
  document.getElementById('myForm:nextPaarBtn').focus();
}
</script>
 
 


        <div class="actionButtons">
        
        </div>

        <rich:panel id="editPanel1" >
   
            <f:facet name="header">#{messages['theElemForTest']}</f:facet>

                  <div >
                    <s:label id="lb_count" value="#{myForm.showCntTestPoolCntText()}" style="font-weight:bold;  "/> 
                  </div>

                  <div style="margin-top:10px; float:top;">
                    <s:label id="lb_w1_stat" value="#{messages['TestWort1']}" style="margin-top:5px; float:left;" /> 
                    <h:inputText id="w1" readonly="true" styleClass="hintable" title="#{myForm.hintW1}"   
                      value="#{myForm.wort1}" style="margin-left:20px; width:300px;  float:left;"/>
                    <s:label id="lb_w1"  value="#{myForm.langBezFuerW1}" style="margin-top:0px; float:left;" />
                    <h:commandButton id="btn_toggleHint" action="#{myForm.toggleHint()}" reRender="lb_EselBr" value="?" style="margin-top:0px; margin-left:10px; float:top;"/>
                    <s:label id="lb_EselBr" value="#{myForm.tog_hintW1}" style="margin-left:5px; width:20px; float:top;" />
                  </div>
                  
                  <div style="margin-top:10px; margin-left:0px; float:top;">
                    <s:label id="lb_ww_stat" value="#{messages['TestmyFieldToCheck']}" style="margin-left:0px; margin-top:5px; float:left; "/>
  
                    <h:inputText id="ww" value="#{myForm.myFieldToCheck}" tabindex="1" autocomplete="off" 
                                 style="margin-left:20px; width:300px; float:left;" >
                      <a:support event="onchange" oncomplete="jQuery('#myForm\:myCommandBtn').focus();" ajaxSingle="true"/>                                 
                    </h:inputText>             
                                 
                                  
                    <s:label id="lb_ww" value="#{myForm.langBezFuerww}" style="margin-left:0px; margin-top:5px;"/>
                  </div>
 
             <s:decorate id="valueField" template="/layout/display.xhtml">
            
            </s:decorate>

            <div style="clear:both"/>

        </rich:panel>
        
        <rich:panel id="pnlTestResult"  >
           <div id="left_cmp_result_bez" style="float: left;">
             <s:label id="cmp_result_bez" value="#{messages['TestRes']}" />    
            </div>
           <s:label id="cmp_result" style="#{myForm.cmpResultColor}"  value="#{myForm.cmpResultTxt}"/>
        </rich:panel>
        
        <rich:panel id="radioGrpPanel1"  >
         
          <h:selectOneRadio id="myRadioRBG" value="#{myForm.testDirection_0_or_1}" valueChangeListener="#{myForm.doRadioGrpChanged}" >  
                <a:support event="onclick" reRender="myForm" />
              <f:selectItem itemValue="0" itemLabel="#{myForm.testDirection_ItmLabelTxt_0}"/>   
                <f:selectItem itemValue="1" itemLabel="#{myForm.testDirection_ItmLabelTxt_1}"/>
 
            </h:selectOneRadio>
        </rich:panel>
  
        <div class="actionButtons">
        
               
            <div id="twinpan" style="margin-left:4px;" >
               
          <h:commandButton id="myCommandBtn"  value="#{messages['thePairTest']}" disabled="#{myForm.isTestButtonsDead()}"
            action="#{myForm.chechThisPaar()}" tabindex="2" onblur="javascript:setFocusEdit2()" style="margin-left:0px; width : 160px;"/>

          <h:commandButton id="nextPaarBtn" value="#{messages['aPairMore']}" disabled="#{myForm.isBothButtonsDead()}"
            action="#{myForm.nextPaar()}" tabindex="4" onblur="javascript:setFocusEdit1()" style="width : 160px;"/>
 
               </div>
               
               
               <div id="left_lb_iNS" style="float:top;margin-top:5px;">
               
          <s:label id="lb_iNS" style="margin-left:4px;" value="#{messages['DaysBefRep']}"/>

          <rich:inputNumberSpinner id="repeateadi" tabindex="3" value="#{myForm.repeateAfterDays}" 
                                     onblur="javascript:setFocusEdit2()" style="margin-left:4px;"
                                     minValue="1" maxValue="999" valueChangeListener="#{myForm.chngNumberSpinner()}" />
          <a:support event="onchange" reRender="myForm" />                         
              
                
        </div>
                
        
          
        <div id="two_main_buttons" style="float:top; margin-top:40px; ">
 
          <div id="hidden_for_nonadmins" style="#{sessionLogChef.showOrHideMnemAdmLogged()}" >
          
          <h:commandButton id="resetAllTestResultsForGrpBtn" value="resetAllTestResults=37"  
                           action="#{myForm.resetAllTestResultsForGrp()}" style="width : 160px;"/>
          </div>
                
         <s:link view="/geschutzt/LanggrpList.xhtml" value="#{messages['zuMyGroups']}" propagation="none" id="sl_langgrpEdit" rendered="#{empty from}">
          <f:param name="langgrpId" value="#{myForm.vmiseamgrpId}"/>
        </s:link>
   
            
     </div>
             
 
<div id="hid_objs" style="visibility: hidden">
  <h:commandButton id="myForm" style="margin-left:500px;" value="myForm" disable="true" action="#{myForm.myForm}"/> 
  <h:inputText id="w4"  size="0" value="#{myForm.blitzParamGrpId}" style="margin-left:9px; width : 0px;"/>
</div>
                     
                     
                     
                    
        </div>

    </h:form>
    
 
<script type="text/javascript">
document.getElementById('myForm:ww').focus();
if ( document.getElementById('myForm:myCommandBtn').disabled ){
    document.getElementById('myForm:nextPaarBtn').focus();
}  
</script>

      

</ui:define>

</ui:composition>
...
Рейтинг: 0 / 0
вопрос то ли по javascript то ли по jboss-seam (потеря TAB-фокуса!)
    #38096370
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViktorWM
ivanraПо яваскрипту могу сказать , что селектор #myForm:myCommandBtn неправильный, должно быть #myForm\:myCommandBtn
не помогло.
Я имел ввиду, что результирующая строка в селекторе должна быть #myForm\:myCommandBtn, т.е. в коде, скорее всего, надо написать двойной слеш: #myForm\\:myCommandBtn.
Но поскольку используется richfaces, то лучше применить встроенную функцию
Код: html
1.
#{rich:element('myCommandBtn')}.focus()
...
Рейтинг: 0 / 0
вопрос то ли по javascript то ли по jboss-seam (потеря TAB-фокуса!)
    #38096407
ViktorWM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanra,

не, дело не в этом! Я похоже проблему уже решил! Очевидно нужен был просто запирающий тэг:
</rich:inputNumberSpinner> сразу после: ( a:support event="onchange" )
гы-гы! Вот я чайник то в темах фронт-энда! ))) (я этого и не отрицал!)

Теперь всё работает, тебе огромное спасибо за наводку по rich-компонентам и всем по-любому спасибо за участие!!!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос то ли по javascript то ли по jboss-seam (потеря TAB-фокуса!)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]