我有一個嚮導式的HTML表單,其中有一排用於後退/下一步/取消操作的提交按鈕(按此順序)。該表單還可以包含不同數量的輸入字段,如文本字段,單選按鈕,複選框,下拉列表(選擇標籤)和文本區。客戶需要「下一步」按鈕作爲默認操作,以便如果用戶鍵入文本字段並按下Enter鍵,則應提交表單,就好像他們點擊了「下一步」按鈕一樣。如何確保按CSS顛倒的按鈕均勻分佈?
問題是,在這種情況下,瀏覽器(至少IE,這是我們客戶使用的99%)使用表單中聲明的第一個按鈕提交表單,正如您從上面的列表中看到的那樣是「後退」,而不是「下一步」。
一個修復我讀到是聲明以相反的順序返回和下一步按鈕(即,接着第一個),然後使用CSS圍繞正確的方式顯示它們,像這樣:
<html>
<head>
<style type="text/css">
.formSubmitButtons {
direction: rtl;
float: left;
}
.formSubmitButtons input {
direction: ltr;
float: none;
}
</style>
</head>
<body>
<form action="blah" method="POST" enctype="application/x-www-form-urlencoded">
<div class="formSubmitButtons">
<input type="submit" name="btnNext" value="Next">
<input type="submit" name="btnBack" value="Back">
</div>
<input type="submit" name="btnCancel" value="Cancel">
<br/>Some text fields go here...
</form>
</body>
</html>
這提供了期望的行爲和按鈕順序在Firefox和IE中,但取消按鈕相對於其他按鈕的間距不一致。在IE6中它看起來不錯,但是在Firefox 3.0.5中,取消按鈕被阻塞在Next按鈕上。
有誰知道我需要編織哪些CSS魔法才能讓這三個按鈕在兩個瀏覽器中均勻分佈?
(通過排序按鈕下一頁/返回/取消迴避問題不是一個選項)
(也感謝大家誰提出基於JavaScript的解決方案,但不是所有的客戶允許JS,所以它必須是一個直接的HTML和/或CSS解決方案)
這裏就是我最後做的是工作很好(基於克萊的建議):
<!--
<input type="submit" name="btnNext" style="position: absolute; left: -9999px" tabindex="-1">
<input type="submit" name="btnBack" value="Back">
<input type="submit" name="btnNext" value="Next">
<input type="submit" name="btnCancel" value="Cancel">
-->
(忽略了包裝的註釋標記,他們只是讓你可以看到HTML)
個人而言,我更喜歡一個Javascript解決方案,它允許您將默認提交按鈕更改爲您選擇的任何按鈕。減少混亂併爲您提供靈活性。 – cbp 2009-03-04 05:16:48