Я хочу показать предупреждение (проверить форму) и не отправлять, если форма недействительна в портлете liferay

У меня есть форма в моем портлете в liferay 6. Я хочу проверить данные перед отправкой данных из формы, но не могу. Я хочу, чтобы если мое поле пусто, форма не отправлялась.

Мой 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>

Этот код показывает предупреждение, если поле пусто, и отправляет форму, но я хочу показать предупреждение (проверить форму) и не отправлять, если данные формы недействительны.


person maryam    schedule 10.06.2013    source источник
comment
какое значение вы проверяете? у вас есть текстовое поле?   -  person Laxman Rana    schedule 10.06.2013
comment
извините ‹aui:input size=4 maxlength=4 name=pre type=text label= › я отредактировал свой код   -  person maryam    schedule 10.06.2013
comment
Довольно хороший вопрос, но, пожалуйста, отформатируйте свой пост в следующий раз, а не просто скопируйте и вставьте его. Вам помог какой-то из вопросов? Если это так, пожалуйста, примите правильный или тот, который вы видите лучше всего.   -  person Joel Peltonen    schedule 08.06.2016


Ответы (3)


Почему бы вам не попробовать aui-form-validator для проверки полей формы перед отправкой http://alloyui.com/tutorials/form-validator/

person Pritesh Shah    schedule 17.06.2013

возможно, попробуйте добавить оператор «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]
   }
}
person Kreutzer    schedule 10.06.2013

В строке № 9 вы используете forms[

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

вместо document.forms[.

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

Это может объяснить, почему форма отправляется, так как это ошибка javascript @строка 9 и не возвращает false.

person Prakash K    schedule 11.06.2013