2

フォーム内のボタン要素からjs関数を呼び出そうとすると頭が壊れます。これが私のコードです:

<% 
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>

私は Java クラスを使用していないため、portlet:actionURL も使用していません。

私の意図は、「送信」ボタンをクリックしたときに「insertEmployee()」を呼び出すことですが、ユーザーがテキストフィールド内に挿入したパラメーターのみを送信しています。送信入力にも「onsubmit」を入れようとしましたが、同じ結果が得られます。

あなたが私を助けたり、問題を解決するために私を導いてくれたら、それはとても素晴らしいことです! インターネットで良い情報や情報を見つけられず、問題がどこにあるのか、他に何を知る必要があるのか​​ わかりません。

よろしくお願いします!

4

1 に答える 1

1

が必要だ:

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

そしてそれを呼び出す:

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

関数はフォームタグから呼び出されています。

于 2012-04-05T09:07:21.560 に答える