2012-04-03 8 views
2

Ich breche meinen Kopf versucht, in einer Form eine js-Funktion von einem Knopfelement zu nennen, hier ist mein Code:Alloy UI Probleme mit JavaScript-Funktion

<% 
PortletPreferences prefs = renderRequest.getPreferences(); 
String employee = (String)prefs.getValue("name", "New Employee"); 
%> 

<portlet:actionURL var="callURL" windowState="<%=LiferayWindowState.EXCLUSIVE.toString() %>" /> 

<script type="text/javascript"> 
    Liferay.provide(window, 'insertEmployee', 
    function() 
     { 
      var A = AUI(); 
      var url = 'http://localhost:8080/c/portal/json_Service'; 
      A.io.request(url, 
       { 
        method:'POST', 
        data: 
        { 
         serviceClassName: 'com.liferay.test.service.TrabajadorServiceUtil', 
         serviceMethodName: 'create', 
         servletContextName: 'TrabajadorPlugin-portlet', 
         serviceParameters: '[param]', 
        }, 
        headers: {'Content-Type':'charset=utf-8'}, 
        on: 
        { 
         success: function() 
         { 
          alert("success " + responseData.name); 
         } 
        }, 
        form: {id: 'postForm'}, 
        xdr: {dataType: 'json'} 
       }); 
     }, 
     ['aui-io'] 
    ); 
</script> 

<div> 
    <aui:form name="postForm" id="postForm" method="post" onSubmit="insertEmployee();"> 
     <input type="text" name="param" value="<%=employee %>"/> 
     <input type="submit" value="Submit"/> 
    </aui:form> 
</div> 

Ich bin nicht eine Java-Klasse, also benutze ich auch nicht das portlet: actionURL.

Ich möchte "insertEmployee()" aufrufen, wenn ich auf "Senden" klicke, aber es sendet nur den vom Benutzer eingegebenen Parameter in das Textfeld. Ich habe versucht, den "onsubmit" auch in die submit-Eingabe zu setzen, aber das gleiche Ergebnis wird gegeben.

Wenn Sie mir helfen könnten oder mir helfen, Problem zu lösen, wäre es so toll! Ich finde keine guten Informationen/Tuts im Internet und ich bin mir nicht sicher, wo das Problem ist oder was ich sonst noch wissen muss.

Vielen Dank im Voraus!

+0

Ich denke, das Problem ist in der

, aber ich habe alles versucht, was ich in meinem Kopf habe ... bitte helfen Sie !!! – agapitocandemor

Antwort

1

ich gerade brauchen:

<aui:script> 
window.functionName = function() 
{ 
//code 
}; 
</aui:script> 

und nennen Sie es aus:

<aui:form name="myform" action="javascript:functionName();"> 
<aui:input type="submit" name="Submit" value="Update"/> 
</aui:form> 

und die Funktion aus dem Formular-Tag aufgerufen wird.