2014-11-16 67 views
1

我有一個帳戶設置的表單,其底部有多個<button type="submit">元素和一個<input type="submit">。如果用戶點擊一個特定的按鈕,一切都很好。問題是當用戶沒有點擊一個特定的按鈕,而只是按下ENTER鍵。CSS在Firefox中更改默認按鈕時用戶按ENTER鍵

在IE中,最後一個按鈕始終是按ENTER的默認按鈕,這是我想要的方式。在Firefox中,第一個按鈕始終是默認的 - 而不是我想要的。我懷疑必須有一種方法來設置哪些是使用Firefox的默認按鈕,但我已經搜索不休,似乎無法找到任何東西。 TABINDEX屬性不起作用。任何幫助表示讚賞!

我知道如何在jQuery中做到這一點,但這部分表單需要能夠使用CSS來處理它。

<form method="post" id="loginform" action="<?php echo MBF_get_login_url(); ?>?action=register" enctype="multipart/form-data"> 
    <button type="submit" class="btn btn-danger" id="delete_avatar" name="delete_avatar"> 
     <i class="icon-trash icon-white"></i> 
     <span><?php _e('Delete Avatar', $current_theme_locale_name); ?></span> 
    </button> 
    <button type="submit" class="btn btn-danger" id="delete_bizlogo" name="delete_bizlogo"> 
     <i class="icon-trash icon-white"></i> 
     <span><?php _e('Delete Logo', $current_theme_locale_name); ?></span> 
    </button> 
    <input type="submit" class="link_btn margl5 margr10" value="<?php echo $mode_submit_title; ?>" id="submits" name="submits" /> 

+0

你能發表一些代碼嗎? –

+0

我認爲這是一個瀏覽器問題,因爲瀏覽器的默認行爲是以某種方式執行此操作。我不認爲CSS會解決你的問題,CSS是爲了造型。 – sharf

+0

在IE8上,在文本輸入中按Enter鍵不會提交任何提交輸入的值。 – Oriol

回答

1

根據HTML5規範,

4.10.22.2隱提交

一個form元素的默認按鈕tree order第一submit buttonform owner是THA t form 元素。

如果用戶代理支持讓用戶提交表單隱含 (例如,在某些平臺上擊中而文本 領域的重點是隱含提交表單「回車」鍵),然後這樣的 形式其default button有一個定義的activation behavior 必須導致用戶代理run synthetic click activation stepsdefault button

因此,Firefox做它的標準方式,所以你應該嘗試修復IE的行爲,而不是Firefox的行爲。

+0

感謝Oriol,這是非常有意義的......我應該已經意識到,IE將是一個解決:) – KoZm0kNoT

1

以防萬一這可能幫助別人我結束了這個簡單的HTML解決方案:

<button type="submit" style="position:absolute;left:-9999px;" id="implicit_submit" name="implicit_submit"></button>  

這不可見按鈕是在我的表格上方的第一個提交按鈕。它被默認爲第一次提交按鈕的瀏覽器激活,並簡單地發佈表單,就像點擊最後一個按鈕一樣 - 所以這解決了我的問題。

+0

好邏輯/明顯的破解;) –