フォーム内のボタン要素から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」を入れようとしましたが、同じ結果が得られます。
あなたが私を助けたり、問題を解決するために私を導いてくれたら、それはとても素晴らしいことです! インターネットで良い情報や情報を見つけられず、問題がどこにあるのか、他に何を知る必要があるのか わかりません。
よろしくお願いします!