Alloy UI проблемы с функцией JavaScript - PullRequest
2 голосов
/ 03 апреля 2012

Я ломаю голову, пытаясь вызвать функцию 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, поэтому ятакже не использовать портлет: actionURL.

Я собираюсь вызвать "insertEmployee ()" при нажатии кнопки "Отправить", но он только отправляет параметр, вставленный пользователем в текстовое поле.Я попытался добавить «onsubmit» также в поле ввода, но результат тот же.

Если бы вы могли помочь мне или помочь мне решить проблему, это было бы здорово!Я не нахожу хорошую информацию / сообщения в Интернете, и я не уверен, где проблема или что еще мне нужно знать.

Заранее большое спасибо!

1 Ответ

1 голос
/ 05 апреля 2012

Мне просто нужно:

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

и функция вызывается из тега формы.

...