【问题标题】:Grails, submit form in modal with ajaxGrails,使用ajax以模态提交表单
【发布时间】:2013-07-01 04:56:52
【问题描述】:

现在我可以在 twitter 引导模式中呈现一个注册表单,在其中输入数据,如果数据没有通过约束,表单将正确呈现并说约束没有通过(通过错误消息) .

但问题是,即使未验证约束并且我得到的视图包含错误消息,我使用的 formRemote 最终也会“通过”。

基本上,我创建了一个模式,然后将其 data-remote 设置为包含此代码的 gsp:

<%@ page import="security.User" %>
<html>
    <head>
        <r:layoutResources />
        <g:set var="entityName" value="${message(code: 'user.label', default: 'User')}" />
        <title><g:message code="default.create.label" args="[entityName]" /></title>
    </head>
    <body>
        <g:hasErrors bean="${userInstance}">
        <ul class="errors" role="alert">
            <g:eachError bean="${userInstance}" var="error">
            <li <g:if test="${error in org.springframework.validation.FieldError}">data-field-id="${error.field}"</g:if>><g:message error="${error}"/></li>
            </g:eachError>
        </ul>
        </g:hasErrors>
        <g:formRemote name="ajaxSignupForm" url="[action:'save',controller:'user']" update="signupModal .modal-body">
            <div class="fieldcontain ${hasErrors(bean: userInstance, field: 'username', 'error')} required">
                <label for="username">
                    <g:message code="user.username.label" default="Username" />
                    <span class="required-indicator">*</span>
                </label>
                <g:textField name="username" required="" value="${userInstance?.username}"/>
            </div>

            <div class="fieldcontain ${hasErrors(bean: userInstance, field: 'password', 'error')} required">
                <label for="password">
                    <g:message code="user.password.label" default="Password" />
                    <span class="required-indicator">*</span>
                </label>
                <g:passwordField name="password" required="" value="${userInstance?.password}"/>
            </div>

            <div class="fieldcontain ${hasErrors(bean: userInstance, field: 'confirmPassword', 'error')} required">
                <label for="confirmPassword">
                    <g:message code="user.confirmPassword.label" default="Confirm Password" />
                    <span class="required-indicator">*</span>
                </label>
                <g:passwordField name="confirmPassword" required="" value="${userInstance?.confirmPassword}"/>
            </div>
            <g:submitButton name="create" class="btn btn-success" value="Create Account" />
        </g:formRemote>


            <div style='display: none; text-align: left;' id='signupMessage'></div>
        <r:layoutResources />
    </body>
</html>

update="signupModal .modal-body" 块是更新包含此 gsp 的模式的内容。我知道这是一些令人讨厌的逻辑,那么我该怎么做才能使它更好并实际正确执行?

【问题讨论】:

    标签: ajax forms grails twitter-bootstrap modal-dialog


    【解决方案1】:

    我更喜欢将您的 formRemote 包含在一个 div 中。然后设置 update="formParent"。

    例如

    <div id="formParent" ... update="signupModal">
       <g:formRemote
       ...
    </div>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-11
      • 2013-12-12
      • 2014-05-10
      • 1970-01-01
      • 1970-01-01
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多