2013-02-27 63 views
0

我正在調用Struts2.3的dojo autocompleter onChange並使用jquery ajax根據autocompleter的值更新文本字段。如果autocompleter輸入的值不在數據庫中,那麼我想調用一個操作在數據庫中首先添加該項目。如何從javascript調用struts2動作?

我的JavaScript代碼: -

dojo.event.topic.subscribe("/value", function(value, key, text, widget){ 
var itemcode=value; 
var data = {itemID:itemcode,itemDes:''};   
$.post("jsondefault/callAJax.action", data, function(data, textStatus) { 
    if(data.itemDes.length===0){ 
    alert("Ihis item is not saved please save it first."); 
    window.location = "/actionName.action"; 
    }else{ 
     $('#itdes').val(data.itemDes); 
    } 
}, "json"); 
}); 

JSP代碼: -

<div class="pull-left " style="width: 48%;"> 
<label id="item1">Item Code<br></label> 
<s:url id="itemList" action="/jsondefault/createCoupon2" method="getItems" />    
<sx:autocompleter id="itemC" href="%{itemList}" forceValidOption="true" size="24"    
name="item" autoComplete="false" showDownArrow="false" valueNotifyTopics="/value"> 
</sx:autocompleter> 
</div> <div class="pull-right " style="width: 48%;"> 
<label id="itdes1">Item Description</label> 
<input type="text" placeholder="Item Description" id="itdes"> 
</div> 
+0

不知道爲什麼你正在使用道場標籤與Struts2.3? – 2013-02-27 08:53:37

+0

我使用dojo 爲數據庫創建自動完成列表,使用 2013-02-27 09:26:15

回答

1

我改變了我的一些代碼行中我的JavaScript

dojo.event.topic.subscribe("/value", function(value, key, text, widget){ 
var itemcode=value; 
alert(text);  
var data = {itemID:itemcode,itemDes:''};   
$.post("jsondefault/callAJax.action", data, function(data, textStatus) { 
    if(data.itemDes.length===0){ 
     var where_to= confirm("This item is not saved, Do you want to save it?"); 
     if (where_to== true) 
     { 
     window.location="addItem.action"; 
     } 
     else 
     { 
     window.location="createCoupon1.action"; 
     } 
    }else{ 
     $('#itdes').val(data.itemDes); 
    } 
}, "json"); 
}); 
相關問題