为什么我的html表单在ajax之后清除页面内容?

时间:2016-04-23 22:58:35

标签: javascript jquery html ajax servlets

代码应该像这样工作...... https://jsfiddle.net/Harout360/yhqoadqx/7/

但是,表单帖子确实得到了正确处理,然后重定向到" /" url作为ajax中的动作URL给出。我无法弄清楚它为什么会重定向,如果我在ajax中放置一个console.log,它就不会打印到控制台。


HTML

php artisan serve

的Javascript

  <form method="post">
    <input type="hidden" name="title" value="${title}" />
    <button type="submit" value="Submit" id="sub-button" data-loading-text="Loading..." data-complete-text="Submitted!">
    Submit
    </button>
  </form>

Java Servlet

$(document).ready(function() {
       $("button[id=sub-button]").click(function(e){
            e.preventDefault();
            var button = $(this);
            var form = $(this.form);
            var form_data = form.serialize();
            var form_method = form.attr("method").toUpperCase();
            console.log('subscribing...');          
            $.ajax({
                url: "/", 
                type: form_method,
                data: form_data,
                success: function(){      
                    button.button('complete');
                }           
            });
        });
    });

更新
Javascript现在可以正常工作,因为我的问题是将函数分配给在document.ready加载时不存在的按钮。相反,我现在将.click分配给实际加载到页面上的按钮。此外,我将按钮的类型更改为按钮,删除了ID,现在使用$(。movie)按类别识别按钮。

更新了小提琴,轻微了解新方法https://jsfiddle.net/Harout360/yhqoadqx/11/

新问题
现在问题是button.button(&#39;完成&#39;)没有做任何事情。有没有猜到为什么?

更新2(解决新问题)
setTimeout(function(){button.button(&#39; complete&#39;);},500);

0 个答案:

没有答案