Как я могу запустить действие Struts изнутри JavaScript? - PullRequest
1 голос
/ 14 ноября 2011

Я искал в интернете это, но пока ни к чему не привел.У меня есть следующий код javascript:

function trigger(){
                var fdate = document.getElementById("d_date").value;
                var m = fdate.substring(fdate.indexOf('/')+1, fdate.lastIndexOf('/'));
                var y = fdate.slice(fdate.lastIndexOf('/')+1);

                form.action="/toEditDate.do?month="+m+"&year="+y+"&navigate";
                form.submit();

            }

и следующий элемент jsp:

<html:text property="strCreationDate" size="10" maxlength="10" title="Date" 
styleId="d_date" onclick="displayCalendar(document.forms[0].strCreationDate,'dd/mm/yyyy',this)"
onchange="trigger();"/>

Код адаптирован из того, что мне удалось найти в Интернете.Единственная проблема - когда я изменяю текст в текстовом поле, ничего не происходит.

1 Ответ

1 голос
/ 14 ноября 2011

Мне кажется, вам нужно передать в экземпляре формы

function trigger(form){
            var fdate = document.getElementById("d_date").value;
            var m = fdate.substring(fdate.indexOf('/')+1, fdate.lastIndexOf('/'));
            var y = fdate.slice(fdate.lastIndexOf('/')+1);

            form.action="/toEditDate.do?month="+m+"&year="+y+"&navigate";
            form.submit();

        }

И изменить JSP

<html:text property="strCreationDate" size="10" maxlength="10" title="Date" 
styleId="d_date" onclick="displayCalendar(document.forms[0].strCreationDate,'dd/mm/yyyy',this)"
onchange="trigger(document.getElementById('formId'));"/>

или, если только одна форма на странице

<html:text property="strCreationDate" size="10" maxlength="10" title="Date" 
styleId="d_date" onclick="displayCalendar(document.forms[0].strCreationDate,'dd/mm/yyyy',this)"
onchange="trigger(document.forms[0]);"/>
...