代码应该像这样工作...... 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);