jQuery Post向url添加参数,仅在第二次单击后才能工作

时间:2014-05-21 07:34:07

标签: jquery ajax spring liferay velocity

我使用velocity,jQuery和Spring将值从html表单发送到Java控制器,然后将它们保存到数据库。 不幸的是它很奇怪。首次单击按钮后,不会发送任何请求,而是将表单中的值添加到url作为参数。 第二次尝试后,只有当我使用相同的值填充表单时,post才能正确发送到控制器,一切正常。

这是代码:

HTML

#set( $actionURL = $renderResponse.createResourceURL() )
$actionURL.setParameter("action", "save")
#set($captchaUrl = $renderResponse.createResourceURL() + "&p_p_resource_id=captcha")
<form action="$actionURL" novalidate="novalidate">
     ...
      <input type="submit" class="btn-plain-green-big contact-form-send-button" value="Wyślij">
</form>

的jQuery

initSubmit :function(){
    jQuery('#contactFormOut form').unbind('submit');
    jQuery('#contactFormOut form').submit(function(e){
        e.preventDefault(); //STOP default action
        //console.log("Submit");
        var postData = jQuery(this).serializeArray();
        var formURL = jQuery(this).attr("action");
        /*if (formURL.indexOf('http:') > -1) {
            //formURL = formURL.replace('http:', 'https:');
        }
        */
        if (jQuery(this).valid()){
            //console.log("Submit - validation ok");
            jQuery(this).attr("action", "#");
            jQuery.ajax(
            {
                url : formURL,
                type: "POST",
                data : postData,
                cache: false,
                success:function(data) 
                {
                    var obj = jQuery.parseJSON(data);
                    if (obj.status == 'OK') {
                        showOkMessage();
                     return false;
                    } else {
                        if(jQuery('#captchaTest').text() != '') {
                            jQuery('#captchaTest').text('');
                        }
                        return false;
                    }
                },
                error: function(data) 
                {
                    jQuery.colorbox.close();
                }
            });
          return false;
        } else  {
            //console.log("validation false");
            return false;
        }
     });
}

的java

@RequestMapping(value = "view")
@ResourceMapping
public void save(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws IOException, PortletException, Exception {
    //eveything here works fine and is not important to a problem
}

0 个答案:

没有答案