2013-08-16 42 views
2

在我的應用程序的認可,我需要改變動態 我的代碼下面給出的textfield的內容:動態輸入未在Struts2,jquery的標籤

<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>     

我期待輸出

Text Changed by jQuery 

但我得到

Hello World!!! 

我使用Struts2-jquery-plugin 3.5.1. 如何獲取動態輸出。

+0

你在哪裏得到舊值?在你的行動類或jsp本身? –

+0

將'subscribe'放入文檔就緒區塊。 –

+1

即時獲取我的行爲類中的舊值 – Hariprasath

回答

3

注意:這不是最好的方式來做到這一點。

但刪除訂閱和onBeforeTopics屬性。添加ID提交按鈕並將點擊事件綁定到它。

<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>標籤進行訂閱。

<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> 
+0

它可以工作,所以SO應該強制性地發表評論,還有沒有其他辦法可以實現這一點。 – Hariprasath

+0

@Hariprasath:如果它起作用,那麼問題是什麼?接受/ upvote這個答案。 –

+0

@AleksandrM:我堅信,如果有人投票,SO應該強制性地發表評論 –

1

before在窗體被序列化後運行,所以使用舊值。您需要修改這樣的代碼

<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> 
+0

我已經嘗試了很多方法,我不知道什麼是正確的做法。請幫助我在ActionClass中獲取動態值。 – Hariprasath

+0

@downvoter解釋這個答案有什麼問題? –

+0

@RomanC:我堅信,如果有人投票 –