[英]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.