2009-08-12 63 views
5

我試圖在表格內同一行顯示兩個表單提交按鈕。在IE7中,以下代碼很好用,但是在IE8中,刪除按鈕會下降到下一行,即使我聲明瞭內聯顯示的表單。有什麼建議麼?顯示多個表單提交按鈕內嵌相同的行在IE8中表

我創建了一個基本的測試頁,這裏要說明的問題:http://ajondeck.net/test/displayinline.html

+0

我猜猜問題是我需要在第一個表單中包含輸入。我意識到這可能不是理想的解決方案,但有沒有辦法用表格來實現這一點? – aherrick 2009-08-12 15:22:20

+0

您是否找到解決方案? – kimerseen 2015-09-11 06:51:54

回答

1

您的例子並不主要是因爲你的HTML是無效的工作。你打開一個td,把Submit1然後關閉一個表單元素?解決這個問題,很多問題可能會消失。

如果你想要兩個並排的按鈕,你應該能夠把它們放在同一個容器中。

+0

你是什麼意思,「把它們放在同一個容器中」 – aherrick 2009-08-12 15:23:41

+0

就像在同一個單元格(td),div,span,p等中, – cletus 2009-08-12 15:40:39

+1

正確,但它們不能以兩種單獨的形式存在,就像我的測試設置一樣? – aherrick 2009-08-12 15:44:45

0

如果你想要一個快速的解決方案,你應該使用CSS放大td的大小。

<td style="width:300px"> 
    <input id="Submit1" type="submit" value="Submit" name="Submit1"/> 
    <form id="form2" action="www.test.com/test2" method="post" name="form2"> 
     <input id="Delete" type="submit" value="Delete" name="Delete"/> 
    </form> 

但這裏重要的是,這種形式是非常有代碼的人。 嘗試閱讀關於div和css,表是你最大的敵人!

希望對您有所幫助:http://www.cssdrive.com/index.php/examples/exampleitem/tableless_forms/P30/

+0

我不知道如何增加TD的寬度讓我獲得任何地方。 – aherrick 2009-08-12 15:24:29

0

沒有什麼錯誤使用表格佈局。我認爲整個「反桌」人羣只是一大堆3l33t1的勢利。 ;-)所有瀏覽器都支持表格。他們來自古代。他們很穩定。所有瀏覽器都能正確呈現。

div和跨度不是。 ie,ff,opera,safari等與css樣式(例如「padding」或「margin」)之類的東西在頁面渲染中的顯示方式有很大的區別。

關於你的問題:

的[輸入類型=提交]形式不會做任何事外。如果你想要一個窗體外的按鈕,你可以嘗試使用「type = button」來看看它在哪裏。您可能需要腳本JavaScript操作,以使其進行惡意招標! ;-)

您可能嘗試的另一件事是清除表單的邊距(默認情況下,表單具有明顯較大的邊距),並嘗試將FORM(即style =「margin:0px; float:right;」)左右......

+1

啊,但不能按照正確的順序讀取表格,就像你可以使用div一樣;) – Sphvn 2010-03-12 06:37:11

+0

Html表格用於表格數據,div等用於佈局。聽起來像你建議在這兩種情況下使用表格! – andreister 2011-12-08 15:17:41

1

把每個表格放在自己的TD中。

例如:

<table cellpadding="0" cellspacing="0"> 
<tr><td> 
<form action="action.php" method="post" style="padding: 0; margin: 0"> 
<input type="submit" value="Submit" name="X1"> 
</form> 
</td><td> 
<form action="action.php" method="post" style="padding: 0; margin: 0"> 
<input type="submit" value="Submit" name="X2"> 
</form> 
</td></tr></table> 

編輯:只是要完全清楚,你也可以用一種形式包圍整個表做到這一點。在接下來的頁面(即action.php的在上面的代碼中),你可以這樣做:

if ($_POST['X2'] == 'Submit'){ 
    //do stuff 
    } 

另一個策略(如果您有多個形式)是包括隱藏輸入元素和測試者的值,但通常你只需要知道用戶按下了什麼按鈕,這是上面的代碼所做的。

19

請嘗試以下內容,因爲我遇到了無法使用表格和內容的情況。

//Put this in ur css styling area 
.spanFormat 
{ 
    text-align: left; 
    display: table-cell; 
    min-width: 10px; 
    padding-right: 10px; 
} 

//This is the html that is used to make ur input buttons side by side on two  
//different forms. 
<span class="spanFormat"> 
<form action="someaction.php" method="post"> 
    <input type="submit" name="action1" value="somevalue" /> 
    <input type="hidden" name="param" value="somevalue" /> 
</form> 
</span> 
<span class="spanFormat"> 
<form action="someaction2.php" method="post"> 
    <input type="submit" name="action3" value="somevalue" /> 
    <input type="hidden" name="param1" value="somevalue" /> 
</form> 
</span> 

這似乎把我的兩個按鈕放在兩個不同的形式並排。

+1

這幫了我很多!我不知道爲什麼這不被選爲答案......但偉大的職位:) – 2011-08-22 23:15:46

+1

這絕對應該選擇答案!也幫助了我。 – Aubergine 2012-01-06 05:53:53

+1

同上面的兩條評論 – paulio 2012-10-24 12:29:05

6

我發現最簡單的方法是使用一個小內嵌CSS(你可以將其列爲在樣式表中的一類,以及如果你想)形式的標籤,就像這樣:

<form method="post" action="nextPage.html" name="nameForm" style="display:inline;"> 
<input type="hidden" name="value" value="someValue"> 
<input type="submit" name="submit" value="Submit"> 
</form>