簡體   English   中英

如何為textarea設置值,並通過struts2操作獲取它?

[英]How to set value to for a textarea, and get it with struts2 actions?

我是Struts2 Web開發的新手。 我正在嘗試創建一個表單,用戶可以在其中輸入訂單的當前狀態。

在表格中

當用戶選擇“訂單已交付”時,文本區域將顯示“訂單已交付”;

當用戶選擇“訂單已取消”時,文本區域將顯示“訂單已取消”;

當用戶選擇“其他”時,文本區域將被解鎖,並且用戶可以在其中輸入內容。

我的HTML和Javascript代碼如下:

function setCompleteReason(reason){
        element = document.getElementById("complete_resaon");
        switch(reason){
            case "delivered":
                element.disabled = true;
                element.value = "Order Delivered";
                break;
            case "canceled":
                element.disabled = true;
                element.value = "Order Canceled";
                break;
            case "others":
                element.disabled = false;
                element.value = "";
                break;
            default:
                element.disabled = true;
                element.value = "";
        }
    }


 function completeOrderBtn() {
        element = document.getElementById("complete_resaon");

        if( element.value.length == 0){
            alert("Please input something!");
            return false;
        }
        $('#orderForm').attr('action','ordercomplete.action');
        $("#orderForm").submit();
    }
<select class="form-control" onchange="setCompleteReason(this.value)" id="selectReason">
                            <option value=""></option>
                            <option value="delivered">Order Delivered</option>
                            <option value="canceled">Order Canceled</option>
                            <option value="others">Other(Please Input)</option>
</select>

<textarea class="form-control" name="ordMVo.complete_reason" id="complete_resaon" cols="10" rows="5" maxlength="100" resize="false" disabled="true"></textarea>


<button type="button" class="btn btn-primary btn-dhl" data-dismiss="modal" onclick="completeOrderBtn(); return false;">Complete</button>

如果用戶選擇“其他”並自行輸入值。 Struts2可以在我的Java操作中通過ordMVo.complete_reason獲取textarea的值,而不會出現任何問題。

但是,如果用戶選擇“已交付訂單”或“已取消訂單”並讓Javascript為textarea創建值,則我的Java操作只會獲得NULL值。

有什么特殊的方法可以為文本區域設置值,並讓Struts2 Java操作獲取它?

禁用的HTML輸入元素不會提交給Struts2。 您應該在請求中或在操作上下文中更好的情況下檢查參數,在這些上下文中,所有參數在存儲到操作之前均已存儲。

要解決禁用textarea元素的問題,可以在元素旁邊添加一個隱藏字段

<textarea class="form-control" name="ordMVo.complete_reason" id="complete_resaon" cols="10" rows="5" maxlength="100" resize="false" disabled="true"></textarea>
<input type="hidden" id="hiddenId" name="ordMVo.complete_reason">

提交表單時,應將值設置為隱藏字段

function completeOrderBtn() {
    element = document.getElementById("complete_resaon");

    if( element.value.length == 0){
        alert("Please input something!");
        return false;
    }
    if (element.disabled){
      $("#hiddenId").val(element.value);
    }
    $('#orderForm').attr('action','ordercomplete.action');

    $("#orderForm").submit();
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM