Bra*_*age 6 javascript forms jquery html5
我原本以为表单对象会填充formmethod和formaction.
问题:有没有办法进行编队?或者找出单击表单中的哪个按钮,从按钮访问它们?
我是否需要重写我的事件处理程序以捕获按钮($(document).on('click', '.myformbtn', function(e))上的点击并用于var queryString= $(this).parent('form').serialize();访问表单.
<form>
<button type="submit"
formmethod="POST"
formaction="/mysave">Save</button>
<button type="submit"
formmethod="GET"
formaction="/mydata">Get new data</button>
</form>
$(document).ready(function()
{
$(document).on('submit', 'form', function(e) {
e.preventDefault();
var formaction = $(this).getFormAction();
var queryString= $(this).serialize();
$.ajax({
type: formmethod,
url: formaction,
data: queryString
});
});
});
Run Code Online (Sandbox Code Playgroud)
我发现了类似的问题,答案总是$(this).attr('formaction')不正确,因为表单没有该属性.我希望提供一个如何使用它将让人们的大脑工作的例子.
考虑到您的代码,我们可以通过以下方式获取导致表单提交的按钮:
var target = e.originalEvent || e.originalTarget;
var clickedElement = $( target.currentTarget.activeElement);
Run Code Online (Sandbox Code Playgroud)
var target = e.originalEvent || e.originalTarget;
var clickedElement = $( target.currentTarget.activeElement);
Run Code Online (Sandbox Code Playgroud)
$(document).ready(function()
{
$(document).on('submit', 'form', function(e) {
e.preventDefault();
var target = e.originalEvent || e.originalTarget;
var clickedElement = $( target.currentTarget.activeElement);
var formaction = $(clickedElement).attr("formaction");
var formmethod = $(clickedElement).attr("formmethod");
alert(" formaction "+formaction);
var queryString= $(this).serialize();
$.ajax({
type: formmethod,
url: formaction,
data: queryString
});
});
});Run Code Online (Sandbox Code Playgroud)