我有这样的表格......
<aui:form action="<%= generateRuleURL.toString() %>" name="rulesForm" method="post">
<aui:button-row>
<aui:button type="button" id="End" value="End" />
<aui:button type="button" id="And" value="And" />
<aui:button type="button" id="Or" value="Or" />
</aui:button-row>
</aui:form>
在jsp文件视图中。
这样的JS ......
document.getElementById( 'End' ).onclick = function()
{
var x=document.forms["rulesForm"]["FirstRuleElement"].value;
System.out.println("Prova : " + x);
var y=document.forms["rulesForm"]["FirstRuleAttribute"].value;
System.out.println("Prova : " + y);
var z=document.forms["rulesForm"]["Operator"].value;
System.out.println("Prova : " + z);
alert("First name must be filled out");
if (x==null || x=="" || y==null || y=="" || z==null || z=="")
{
alert("First name must be filled out");
return false;
}
AUI().one("#<portlet:namespace/>rulesForm").action='<%= generateRuleURL.toString()%>';
document.forms["rulesForm"].submit();
};
在submit.js
档案中。
从其中一个按钮调用此方法以及其他按钮的其他方法应该怎么做?我尝试了很多,但这没有起作用..
例如:
调用commonFunction js: onclick="commonFunction('End')"
// End是一个要作为参数传递的字符串
等等......没有结果!
有人可以帮我一把吗?
答案 0 :(得分:1)
您可以通过以下两种方式实现目标:
一种方法是将您的javascript代码放入view.jsp
并使用<portlet:namespace/>
,如下所示:
<aui:script>
document.getElementById('<portlet:namespace/>End').onclick = function()
{
var x=document.forms["<portlet:namespace/>rulesForm"]["<portlet:namespace/>FirstRuleElement"].value;
System.out.println("Prova : " + x);
var y=document.forms["<portlet:namespace/>rulesForm"]["<portlet:namespace/>FirstRuleAttribute"].value;
System.out.println("Prova : " + y);
var z=document.forms["<portlet:namespace/>rulesForm"]["<portlet:namespace/>Operator"].value;
System.out.println("Prova : " + z);
alert("First name must be filled out");
if (x==null || x=="" || y==null || y=="" || z==null || z=="")
{
alert("First name must be filled out");
return false;
}
AUI().one("#<portlet:namespace/>rulesForm").action='<%= generateRuleURL.toString()%>';
document.forms["<portlet:namespace/>rulesForm"].submit();
};
</aui:script>
我们需要使用<portlet:namespace/>
,因为您正在使用liferay的aui
标记,例如<aui:form>
,<portlet:namespace/>
添加到name
和id
属性。
同样使用<portlet:namespace/>
可确保元素的id
或name
属性不会与@OlafKock在其comment中提及的页面上的其他元素冲突。
另一种方法是,如果您想使用javascript文件submit.js
,请在该文件中创建一个javascript function
:
function submitMyForm(portletNamespace) {
var x=document.forms[portletNamespace + "rulesForm"][portletNamespace + "FirstRuleElement"].value;
System.out.println("Prova : " + x);
var y=document.forms[portletNamespace + "rulesForm"][portletNamespace + "FirstRuleAttribute"].value;
System.out.println("Prova : " + y);
var z=document.forms[portletNamespace + "rulesForm"][portletNamespace + "Operator"].value;
System.out.println("Prova : " + z);
alert("First name must be filled out");
if (x==null || x=="" || y==null || y=="" || z==null || z=="")
{
alert("First name must be filled out");
return false;
}
AUI().one("#<portlet:namespace/>rulesForm").action='<%= generateRuleURL.toString()%>';
document.forms[portletNamespace + "rulesForm"].submit();
}
从view.jsp
调用此函数:
<aui:form action="<%= generateRuleURL.toString() %>" name="rulesForm" method="post">
<aui:button-row>
<aui:button type="button" id="End" value="End" onClick="submitMyForm('<portlet:namespace/>')" />
<aui:button type="button" id="And" value="And" />
<aui:button type="button" id="Or" value="Or" />
</aui:button-row>
</aui:form>
希望这有助于你前进。