/ / Как да заснемате формуляр, изпращащ от страница, която има множество форми - jquery, форми, laravel, submit, улавяне

Как да заснемете формуляра да подадете от страница, която има няколко формуляра - jquery, формуляри, ларавел, изпращане, улавяне

Имам таблица, която съдържа фактури, което означаваима няколко реда, всеки ред съдържа форма, в която потребителят може да изпрати плащане за, как мога да прихвана правилния формуляр, изпратен с jquery?

В момента мога да прихващам изпращането на първия формуляр, но имам нужда от това да е по-универсален и да ми позволи да прихващам изпращането на всяка форма.

Всяка помощ се оценява, благодаря за отделеното време.

Моят текущ код:

payment.blade.php

<form action="{{"/users/payment"}}" method="post" id="checkout-form">

checkout.js

$(document).ready(function() {
console.log("Checkout.js is running!");
Stripe.setPublishableKey("...");

var $form = $("form:last");
console.log($form);
$form.submit(function (event) {
console.log("form submit event clicked");
$("charge-error").addClass("hidden");
$form.find("button").prop("disabled", true);
if ($("#paymentMethod").val() == "Saved Card") {
console.log("reaching if statement");
// No new card is used so just submit the form.
$form.get(0).submit();
return false;
} else {
console.log("reaching else statement");
console.log($("#card-number").val());

Stripe.card.createToken({
number: $("#card-number").val(),
cvc: $("#card-cvc").val(),
exp_month: $("#card-expiry-month").val(),
exp_year: $("#card-expiry-year").val()
}, stripeResponseHandler);
return false;
}
});

function stripeResponseHandler(status, response) {
if (response.error) {
console.log("reaching error statement");
$("#charge-error").removeClass("hidden");
$("#charge-error").text(response.error.message);
$form.find("button").prop("disabled", false);
} else {
console.log("reaching successful response statement");
var token = response.id;
// Insert the token into the form so it gets submitted to our local server:
$form.append($("<input type="hidden" name="stripeToken" />").val(token));

// Submit the form:
$form.get(0).submit();
}
}

});

Отговори:

2 за отговор № 1

Просто сменете селектора за формуляри

var $form = $("form");

Тогава

$form.submit(function(){
//Every form submit will trigger this function
});

За достъп до елементите на формуляра на детето

$form.submit(function(){
$this = $(this);
var number = $this.find("#card-number").val(),
cvc = $this.find("#card-cvc").val(),
exp_month = $this.find("#card-expiry-month").val(),
exp_year = $this.find("#card-expiry-year").val();
});