我有一个结帐页面,要求用户提供他们的付款信息,然后他们点击一个Review按钮,他们会将他们带到一个新的“面板”来查看他们可以查看的所有信息返回并根据需要进行更改,这必须发生在同一页面中,所以我有一个“信息面板”div,一旦按钮被点击,就会通过jquery更改为“information-review-panel”,如下所示:Html表单 - 审查和更改信息
$(document).ready(function() {
$("form").submit(function() {
//Save values from the form fields
var fn = $("#first_name").val() + " " + $("#last_name").val();
var cc = $("#credit_card").val();
//Switch panels
$("div.information-panel").replaceWith($("div.information-review-panel"));
$("div.information-review-panel").fadeIn(1000);
//Place values in the new panel
$("#review-name").html(fn);
$("#review-card").html(cc);
});
});
<div class="information-panel">
<div class="form-line">
<div class="col-md-4">
<label for="first_name">First Name</label>
<input class="form-control" id="first_name" type="text" placeholder="First Name" required>
</div>
<div class="col-md-4">
<label for="last_name">Last Name</label>
<input class="form-control" id="last_name" type="text" placeholder="Last Name" required>
</div>
<div class="col-md-4">
<label for="credit_card">Credit Card Number</label>
<input class="form-control" id="credit_card" type="text" placeholder="Card Number" required>
</div>
</div>
</div>
<div id="step_nav">
<input type="submit" class="blue-button next" value="review">
</div>
<div class="information-review-panel">
<h2>Review Panel</h2>
<h4>Please review your information below:</h4>
<div class="amount">
<h3>
<b>Name:</b><span id="review-name"></span>
</h3>
<h3>
<b>Credit Card Number:</b><span id="review-card"></span>
</h3>
</div>
正如您所看到的,我的第一个问题是Review按钮实际上提交了表单,这是因为它是我知道验证表单上信息的唯一方式,但显然我不想在查看之前提交表单它并能够回去编辑任何信息。所以我的问题是,我如何在两个面板之间来回移动,并且在没有提交表单的情况下验证表单上的数据?我不确定AngularJS是否是一种选择,但我无法使用它。任何帮助是极大的赞赏。
是的,我现在看到我的错误,谢谢。这是有效的,我可以在两个面板之间来回移动,我唯一的问题是,因为当我点击查看按钮时不再提交表单,用户可以移动到下一个面板而无需填写任何“必填”字段,我如何验证表单中的信息而不实际提交? – SeptimaEspada