Я пытаюсь интегрировать платеж api в мое приложение MVC 5 asp.net C#.Предотвращение представления MVC
1-я часть предполагает получение «токена» из этого апи без отправки моей формы.
Я относительно новичок в mvc, и я не могу заставить это работать.
Эта часть моей разметки:
@using (Html.BeginForm("NewCard", "Payments", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<form action="" method="POST" id="payment-form">
<span class="payment-errors"></span>
<div class="form-row">
<label>
<span>Card Number</span>
<input type="text" size="20" data-stripe="number" value="4242424242424242"/>
</label>
</div>
<div class="form-row">
<label>
<span>CVC</span>
<input type="text" size="4" data-stripe="cvc" value="1223"/>
</label>
</div>
<div class="form-row">
<label>
<span>Expiration (MM/YYYY)</span>
<input type="text" size="2" data-stripe="exp-month" value="10" />
</label>
<span>/</span>
<input type="text" size="4" data-stripe="exp-year" value="2022"/>
</div>
<button type="submit">Submit Payment</button>
</form>
}
$('#payment-form').submit(function (event) {
var $form = $(this);
// Disable the submit button to prevent repeated clicks
$form.find('button').prop('disabled', true);
Stripe.card.createToken($form, stripeResponseHandler);
// Prevent the form from submitting with the default action
event.preventDefault(); //i added this is!
return false; //from the sample code!
});
форма по-прежнему представляет/сообщений назад.
Что я делаю неправильно?
Ваш скрипт теперь будет справиться с этим - ваш 'вернуть ложь ; 'будет препятствовать отправке формы по умолчанию (и вам не нужно' event.preventDefault(); '). Раньше скрипт обрабатывал только (недопустимую) внутреннюю форму и ничего не делал, чтобы остановить отправку по умолчанию внешней формы) –
привет, после установки точки прерывания я вижу, что мой скрипт не вызывается. Могу ли я добавить функцию для вызова в бит «Html.BeginForm», чтобы вызвать мою функцию перед отправкой (которая затем остановит отправку? –
Добавили ли 'new {id =" платежную форму "}' в 'BeginForm () '? Код, который вы показали, будет работать нормально, если вы внесете изменения в мой ответ. –