首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在struts2-jquery标记中无法识别动态输入。

在struts2-jquery标记中无法识别动态输入。
EN

Stack Overflow用户
提问于 2013-08-16 09:42:35
回答 2查看 1.1K关注 0票数 2

在我的应用程序中,我需要动态地更改<s:textfield>的内容,我的代码如下所示:

代码语言:javascript
复制
<script type="text/javascript">
    $.subscribe('before', function(event, data) {                
        $('#text').val('Text Changed by jQuery');
    });               
</script>       

<s:form id="form2" action="textchange" >        
    <s:textfield id="text" name="text" value="Hello World!!!"/>                                                        
    <sj:submit  targets="result" onBeforeTopics="before" />
</s:form>                

我期望的输出是

代码语言:javascript
复制
Text Changed by jQuery

但我得到了

代码语言:javascript
复制
Hello World!!!

我正在使用Struts2-jQuery-plugin3.5.1。如何获得动态输出?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-16 10:19:48

注意:这不是最好的方法。

但是删除订阅和onBeforeTopics属性。添加id以提交按钮并将单击事件绑定到该按钮。

代码语言:javascript
复制
<script type="text/javascript">
  $(function(){
    $("#form2Submit").click(function() {   
      $('#text').val('Text Changed by jQuery');
    });
  });
</script>

<s:form id="form2" action="textchange">        
  <s:textfield id="text" name="text" value="Hello World!!!" />                                                        
  <sj:submit id="form2Submit" targets="result" />
</s:form>

任何其他方式。与订阅一起使用<sj:a>标记。

代码语言:javascript
复制
<script type="text/javascript">
  $(function(){
    $.subscribe('before', function(event, data) {        
      $('#text').val('Text Changed by jQuery');
    }); 
  });
</script>

<s:form id="form2" action="textchange">        
  <s:textfield id="text" name="text" value="Hello World!!!" />                                                        
  <sj:a targets="result" onClickTopics="before" formIds="form2" button="true">
    Submit
  </sj:a>
</s:form>
票数 3
EN

Stack Overflow用户

发布于 2013-08-16 09:53:03

before在表单序列化后运行,因此使用旧值。您需要像这样修改代码

代码语言:javascript
复制
<script type="text/javascript">
  $(document).ready(function(){
   $('#before').click(function() {
       $('#text').val('Text Changed by jQuery');
   });
  });
</script>
<s:div id="result"/>
<s:form id="form2" action="textchange" method="POST">
<s:textfield id="text" name="text" value="Hello World!!!"/>
<sj:submit  id="before" targets="result" />
</s:form>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18270388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档