1 回答

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
一個(gè)解決方案可能是設(shè)置一個(gè)默認(rèn)隱藏的提交按鈕(在第一個(gè)選項(xiàng)卡上),并在轉(zhuǎn)到第二個(gè)選項(xiàng)卡時(shí)顯示(如果添加更多選項(xiàng)卡,則顯示最后一個(gè)選項(xiàng)卡)。這樣您就不必更改innerHTML任何元素,只需切換一個(gè)類即可。類似的東西可能看起來像:
<form id="regForm" name="regForm" action="[NEED ACTION]" class="col-sm-6">
...
<div style="overflow:auto;">
<div style="float:right;">
<button type="button" id="prevBtn" click="nextPrev(-1)">Previous</button>
<button type="button" id="nextBtn" onclick="nextPrev(1)">Next</button>
<submit type="submit" class="hide" value="Submit" />
</div>
</div>
</form>
function showTab(n) {
var x = document.getElementsByClassName("tab");
x[n].style.display = "block";
if (n == 0) {
document.getElementById("prevBtn").style.display = "none";
} else {
document.getElementById("prevBtn").style.display = "inline";
}
if (n == (x.length - 1)) {
document.getElementById("nextBtn").classList.add('hide');
document.getElementById("submitBtn").classList.remove('hide');
} else {
document.getElementById("nextBtn").classList.remove('hide');
document.getElementById("submitBtn").classList.add('hide');
}
fixStepIndicator(n)
}
為此,您需要填寫action表格的屬性。
在不添加額外元素的情況下執(zhí)行此操作的另一種方法是更改onClick下一步/提交按鈕的操作。
function showTab(n) {
var x = document.getElementsByClassName("tab");
var nextSubmitBtn = document.getElementById("nextBtn");
x[n].style.display = "block";
if (n == 0) {
document.getElementById("prevBtn").style.display = "none";
} else {
document.getElementById("prevBtn").style.display = "inline";
}
if (n == (x.length - 1)) {
nextSubmitBtn.textContent = "Submit";
nextSubmitBtn.onClick = someSubmitFunc;
} else {
nextSubmitBtn.textContent = "Next";
nextSubmitBtn.onClick = function () { nextPrev(1); };
}
fixStepIndicator(n)
}
這將允許您保留相同的 HTML 并通過 JS 處理解決方案。如果您這樣做,請(qǐng)記住將當(dāng)前屬性保留onClick在“下一步”按鈕上,因?yàn)檫@將是運(yùn)行的初始函數(shù)(當(dāng)您第一次單擊“下一步”時(shí))
一些提示和注意事項(xiàng):
如果您僅更改元素的文本(例如從“next”到“submit”),最好使用僅更改文本的函數(shù):
// Pure JS
element.textContnet = 'some text';
// jQuery
$element.text('some other text');
這將有助于防止可能來自innerHTML.
你說你正在使用 jQuery,但它只在所提供的 JS 代碼中的一行中使用。如果這是唯一使用 jQuery 庫的行,您可以輕松替換它,并且不包含該庫,從而節(jié)省網(wǎng)站大小。
// jQuery way to add class (line 111)
$("#sdate").addClass("invalid");
// Pure JS equivalent
document.getElementById('sdate').classList.add('invalid');
兩者都可以完成工作(添加一個(gè)類),如果您更喜歡使用 jQuery,但如果這是您唯一使用它的地方,那么這可能是一個(gè)替代方案。
添加回答
舉報(bào)