2

我在 Liferay 6 的 portlet 中有一个表单。我想在从表单发送数据之前验证数据,但我不能。我希望如果我的字段为空,则表单不会提交。

我的jsp代码:

<script>
function submitForm18() {
    var pre=document.forms['<portlet:namespace/>myFormpostcode']['<portlet:namespace/>pre'].value;
    if (pre == "" || pre == null) {
        alert("errrror.");
        forms['<portlet:namespace/>myFormpostcode']['<portlet:namespace/>pre'].focus();
        return false;
    }
    document.forms['<portlet:namespace/>myFormpostcode'].submit();
}  
</script>

<aui:form action="<%= myUrl%>" method="post" name="myFormpostcode" id="send_info" onsubmit="return submitForm18(); return false;">
    <liferay-ui:message key="pre-code" />    :  <liferay-ui:message key="without-zero" />
    <aui:input size="4" maxlength="4" name="pre" type="text" label=""></aui:input> 
    <aui:button type="submit" value="send" name="KeyNB" cssClass="buttom-submit" />               
</aui:form>

此代码在字段为空并提交表单时显示警报,但我想显示警报(验证表单)并且如果表单数据无效则不提交。

4

3 回答 3

1

为什么不尝试 aui-form-validator 在提交 http://alloyui.com/tutorials/form-validator/之前验证您的表单字段

于 2013-06-17T06:16:51.273 回答
0

也许尝试像这样添加一个“else”语句:

function submitForm18() {

   [b]var pre=document.forms['<portlet:namespace/>myFormpostcode']['<portlet:namespace/>pre'].value;
   if (pre == "" || pre==null ) {
       alert("errrror.");
       forms['<portlet:namespace/>myFormpostcode']['<portlet:namespace/>pre'].focus();
       return false;
   } else { /* this is new */
       document.forms['<portlet:namespace/>myFormpostcode'].submit();[/b]
   }
}
于 2013-06-10T06:15:48.933 回答
0

在第 9 行,您正在使用forms[

forms['<portlet:namespace/>myFormpostcode']['<portlet:namespace/>pre'].focus();

而不是document.forms[.

document.forms['<portlet:namespace/>myFormpostcode']['<portlet:namespace/>pre'].focus();

这可能解释了为什么提交表单,因为它是一个 javascript 错误 @line 9 并且没有返回false

于 2013-06-11T06:34:19.970 回答