如何将输入文本值重置为默认值?

时间:2012-04-11 15:33:35

标签: jquery jsf-2 richfaces

我有一个页面,其中a4j:commandbutton捕获2个文本框的值。文本框值默认为这样:

 <a4j:region id="pnreg" >
  <h:inputText id="pn" binding="#{bean.pn}"
  value="Enter Number..."       
  onclick="clickclear(this, 'Enter Number...')"/>      
  </a4j:region> 
  </td>   
  <td width="20">
  <a4j:region id="qtyreg" > 
  <h:inputText value="Enter Part Qty..." id="qty" binding="#{bean.qty}"       
  onclick="clickclear(this, 'Enter Qty...')"/>      
  </a4j:region>
  </td>      
  <td width="20%">
  <a4j:commandButton id="addPart" render="pn,qty" value="Add Part"
   action="#{bean.submit}" /> 

当页面首次加载时,文本框显示默认值,当用户单击它们时,值将被清除为编码。单击该按钮时,我希望文本框返回默认值。使用jquery我想我需要添加一个click事件处理程序,但richfaces api已经有一个附加到a4j:commandbutton的事件处理程序。如何使我的jquery事件处理程序与richfaces eventhandler一起使用?感谢。

3 个答案:

答案 0 :(得分:0)

创建一个新的JavaScript函数,在您的文本字段上调用clickclear()。然后修改a4j:commandButton,添加一个oncomplete =“yourNewFuction();”属性,以便在AJAX调用完成时执行新函数。

答案 1 :(得分:0)

如果要设置inputText的值,则应在onclick的{​​{1}}方法中添加js函数:

a4j:commandButton

在该代码示例中,<a4j:commandButton id="addPart" value="Add Part" onclick="alert('Before the ajax submit...');verifyInputTexts();" action="#{bean.submit}" render="pn,qty" limitToList="true" oncomplete="alert('Ajax completed!')" /> 可能是您使用javascript验证HTML的JS函数。还有一件事,我为verifyInputTexts编写属性的方式是按它们执行的顺序编写的,a4j:commandButton是告诉ajax只应该重新渲染{{1}中的组件}值。

答案 2 :(得分:0)

将inputText放在与“cancel”按钮相同的窗体中,并使用type =“reset” 例如:

    <h:form id="globalNotificationSettingsForm"> 
       your input <h:inputText>
       <a4j:commandButton id="cancelButton"
         ....other tags..
        render="globalNotificationSettingsForm"
        immediate="true"
        type="reset"/>
 </h:form>