2012-11-22 81 views
1

輸入的主要問題是你不能使用:before或:after。我必須將我的輸入按鈕的CSS與其他s匹配,並且幾乎不可能只用css。用html和js創建提交按鈕的最簡單方法是什麼?

我在想,使用一個簡單的onclick =「」屬性作爲提交按鈕會很容易,但我不確定這是一個好還是壞的想法。例如,我認爲一個用作輸入的輸入可能被SEO或瀏覽器認爲是不好的,另一方面,我每天都會用JavaScript提交表單。

會不會推薦使用類似提交按鈕的元素?

另外我該如何告訴JS提交div的形式,以便我可以創建一個適用於所有表單的代碼片段?這會工作嗎?

<div onclick="this.submit()"></div> 
+0

如果您使用''? –

回答

1

還有<button type='submit'>Submit</button>,我不確定這是否適用於CSS :before:after。如果你想用JavaScript來做更強大的事情,你應該看看jQuery,這對你的情況來說很完美。

+0

我真的很喜歡這個解決方案。我從來沒有聽說過按鈕標籤。它會在各種瀏覽器中被棄用或不被支持?這似乎有點多餘,因爲它與輸入類型=「submit」相同' – lisovaccaro

+0

來自W3schools:'注意:如果在HTML表單中使用

+0

W3Schools不準確(請參閱http://w3fools.com/)。只要包含'type'屬性,'

1

您可以使用

<div onclick="document.myform.submit()"></div> 

如果你的DIV的形式元素的孩子,你可以使用

<div onclick="this.parentNode.submit()"></div> 

但是,你也可以使用一個框架像jQuery來處理提交

$('#divId').onclick(function(){ 
    $('#formId').submit(); 
}); 
+0

只能用'name = myform'的形式工作我相信我在問是否有辦法讓它像提交按鈕一樣工作。(提交包裹元素的表單) – lisovaccaro

+0

@ Liso22更新了我的答案 – Bruno

1
<div onclick="document.forms[0].submit();"></div> 
+0

對於有限的場景,將會是確切的答案。如果有不同的形式呢? – mtk

1

另外我該如何告訴JS提交div的表格,以便我可以創建一個適用於所有表單的代碼片段?這會工作嗎?

this.parentNode.submit(); 

其他的東西我不知道。你想不使用JavaScript,只使用css:before和:after插入內容,但按鈕和輸入或按鈕類型提交沒有這些CSS屬性?

+0

是的,我寧願只是使用輸入類型=「提交」,但他們沒有這些屬性只有開放和結束標籤的元素做 – lisovaccaro

+0

不知道是否有按鈕類型提交這樣的事情。他們有開放和結束標籤。 – HMR

2

如果你不想使用jQuery,這並用純JS的伎倆:

HTML:

<div onclick="submitButton(this)"></div> 

腳本:

function submitButton (element) { 
    while(element.parentElement !== document.body) { 
     if (element.parentElement.tagName.toLowerCase() === 'form') { 
      element.parentElement.submit(); 
      return; 
     } else { 
      element = element.parentElement; 
     } 
    } 
    return; 
} 
相關問題