2012-01-30 33 views
2

工作,我有我使用我的網站上提交表單如下:HTML需要不的onclick

<a onclick="document.forms['REGform'].submit(); return false;" class="button" href="javascript:;">Register</a> 

我有所需標籤的形式輸入,內這似乎,但不解僱他們?含義不會停止正在提交的空輸入。

如果我用一個正常的提交按鈕能正常工作的方式 - 是的onclick沒有一個公認的方法來HTML5內提交表單?

+2

你爲什麼要使用JavaScript? – CoffeeRain 2012-01-30 15:28:03

+2

是的,爲什麼不是輸入提交?和標籤驗證器不能在每個瀏覽器中工作 – 2012-01-30 15:31:53

+0

我正在使用js,因爲我使用按鈕的精靈作爲背景,所以我可以更改按鈕文本 – 2012-01-30 15:46:17

回答

3

的問題是submit()方法,而不是使用onclick(但如果你想用JS,而不是HTML來提交你不能避免前)。

使用JS導致窗體的驗證步驟提交跳過(在JS(與checkValidity())雖然可以重新實現它們。

的提交()方法被調用時,必須提交表單元素從

表單元素本身,用腳本提交標誌設置 - http://www.w3.org/TR/html5/forms.html#dom-form-submit

如果腳本提交標誌n並且提交者元素的無效狀態爲假,然後交互式地驗證表單的約束並檢查結果:如果結果是否定的(約束驗證認爲存在無效字段並可能通知用戶這一點),則放棄這些步驟。

- http://www.w3.org/TR/html5/association-of-controls-and-forms.html#form-submission-algorithm

-4
<a class="button" href="javascript:document.forms['REGform'].submit(); return false;">Register</a> 

<a onclick="document.forms['REGform'].submit(); return false;" class="button">Register</a> 
+0

這只是代碼的揮霍。充其量,這是一個「點差異的解決方案」,但我看不出任何可能有所作爲的東西。請解釋爲什麼這會有所作爲。 – Quentin 2012-01-30 15:44:19

+0

其在我的電腦上工作... – SolidSnake 2012-01-30 15:52:03

+0

什麼是工作?問題中的原始代碼?如果是這樣,請在評論中說明。你改變了的代碼?如果是這樣,請說明你已經改變了什麼,以及它爲什麼會發揮作用。 – Quentin 2012-01-30 15:53:54

5

這裏是你如何能做到

<a onclick="CheckValidation();" class="button" href="javascript:;">Register</a> 

function CheckValidation() 
{ 

    var isValidForm = document.forms['REGform'].checkValidity(); 
    if (isValidForm) 
    { 
     document.forms['REGform'].submit(); 
    } 
    else 
    { 

     return false; 
    } 

} 
+0

對我來說並不是我害怕,什麼都不做 - 我糾正了CheckValidation – 2012-01-30 17:24:46

+0

@DarrenSweeney謝謝你的情況。 – user47900 2012-01-30 18:13:11