2011-12-27 95 views
1

我有一個JSP與像"username" HTML輸入字段。我有一個JavaScript方法,我使用`document.getElementById('userId')。value來獲得這個字段的值。設定值:隱藏在JavaScript

現在我有一個Struts2的標籤:<s:hidden name="username" />

在我的JavaScript,在提交前,我需要從輸入文本字段的值設置爲Struts 2的隱藏標記字段。我無法直接從輸入字段使用文本,我需要將其設置爲隱藏的Struts 2標籤。

+0

如果你需要,你正在做的事情不對在提交之前做到這一點。這意味着您依賴客戶端來保持您在服務器上指定的值 - 如果某人故意修改它並禁用JavaScript,該怎麼辦?你**必須**在服務器上執行這樣的事情。 – ThiefMaster 2011-12-27 11:52:34

+0

隱藏的標籤實際上與表單變量相匹配。所以在提交給動作類時,變量被設置爲表單變量。因此,我需要通過javascript來做到這一點。我可以設置爲:textfield也可以,但我需要知道如果有可能在JavaScript中設置s:hidden值..... – ITAmateur 2011-12-27 12:08:11

+0

好吧,如果用戶修改它而沒有執行JS,您將獲得修改後的變量而不是隱藏字段中的變量。 – ThiefMaster 2011-12-27 12:09:12

回答

1
  1. 爲什麼不能直接給價值隱藏字段?
  2. Struts2的輸入標籤被最終轉化爲對網頁呈現正常的HTML標籤,所以沒有什麼特別的,你需要爲它們分配一個值。只是提一個id來隱藏元素和使用JavaScript就像你通常做

    <s:textfield id="mytext" value="yourvalue"/> 
    <s:hidden id="myhidden" value=""/> 
    
    
    function assignvalue(){ 
        document.getElementById("myhidden").value=document.getElementById("mytext").value; 
    } 
    
+0

問題是,隱藏變量應該對應於Action類中定義的bean變量。當我使用s:textfield時,complte對齊將會失靈。因此,我想從隱藏的變量中提交值,該變量應該對應於表單變量 – ITAmateur 2011-12-27 12:18:16

+0

現在使用上面的方法,我的隱藏變量值被設置,但是bean變量沒有被填充。我已經定義了其中Name是一個bean中的變量。但它不工作,bean變量仍然是nulll ....請幫助 – ITAmateur 2011-12-27 12:20:14

+0

那麼,什麼是使用相同的名稱隱藏字段爲您的bean變量?爲了解決你的文本字段的對齊問題,試試使用這種格式 - 「' – anu 2011-12-27 12:22:50

0

Struts2的標籤分配值只提供了一些額外的功能與Struts2的flow.They更好的工作,就像幫手,給你一些開箱即用的功能與struts2緊密合作。

最後,當瀏覽器顯示JSP時,無論是struts2標記/您的自定義標記還是其他任何正在使用的標記庫都將被轉換爲您的瀏覽器可以理解的純HTML。

所以,如果你有一個文本框說

<s:textfield name="username" id="username" value=""/> 

它會在最終的顯示轉換爲HTML像

<input type="text" name="username" id="username" value=""> 

不過請注意,如果你不爲你的文本字段提供id struts2的將本身,所以如果你想爲文本字段自定義ID生成ID,而標籤代碼轉換爲最終的HTML /任何其他領域給它明確。

所以你把所有的方式來使用JavaScript的出名方式

document.getElementById("myhidden") 

,做你想要的值做什麼都。

0

您可以將文本框的值設置爲上提交按鈕的隱藏價值。

讓向您展示一個例子, <script type="text/javascript>

function setHiddenValue(){

document.getElementById('hiddenfield').value = document.getElementById('textfield'); }

</script>

<s:hidden name="hiddenfield" id="hiddenfield" />

<s:textfield name="textfield" id="textfield" />

<input type="submit" onclick="setHiddenValue();" />

1

首先,你必須給id來你的隱藏字段,那麼你可以使用jQuery或JavaScript設置。

以下是例子,用jQuery

設置這是你的形式

這將從jQuery的設置的用戶名;

<script type="text/javascript"> 
      $(document).ready(function() { 
       $(document).on('click', '#s', function(event) { 
        event.preventDefault(); 
        var name="Ram"; 
        $("#uname").val(name); 
       }); 
      }); 
</script> 

如果它是非常重要的數據,然後將其保存到會話或任何其它範圍,並直接得到它的行動不表露出來JSP頁面