2010-10-26 55 views
10

如何在IE7中提交表單,同時進行表單上設置的所有表單驗證?IE7 - <button>不提交表格

如果我只是做一個document.forms[0].submit();它提交,但忽略表單驗證。

編輯: 每個人都喜歡告訴我使用的輸入標籤......這將透過形式,但在我的處境不會工作這就是爲什麼我問了一下按鈕標記...

<form action="my/script" onsubmit="return ValidateFunc();"> 
<button> <img src="image/do_this_with_input_tag.png"> Some Text </button> 
</form> 
+0

您是否在使用'

+0

不,不提交。 – Justin808 2010-10-26 02:11:41

+0

@Nick Craver:如果我的記憶正確地爲我服務,那是IE中的默認類型,但不是其他瀏覽器。 – some 2010-10-26 02:17:14

回答

1

我用jquery提交按鈕。如果我繞過驗證設置使用直接JavaScript。 Jquery的表單提交在提交之前運行驗證。

經過額外的研究,標籤,即使是type =「submit」,也無法在舊版IE中提交表單。

+3

我已經在ie7上測試了type =「submit」,似乎將表單提交給我。 – Geekfish 2011-09-01 10:53:25

1

我想驗證只能識別「提交」按鈕中的「提交」事件。

您應該使用「提交」輸入而不是「按鈕」輸入。然後驗證機制將能夠攔截提交事件。你可以在validation.submit函數中調用form.submit。

下面的代碼:

<form id="theForm"> 
    ... 
    <input type="submit" value="submitMe"/> 
</form> 
在Javascript

$('#theForm').validate({ 
    ... 
    submitHandler: function() { 
     // do some trick here 
     ... 
     // submit the form 
     $('#theForm').submit(); 
    } 
}); 
9

首先有型的按鈕提交的

<input type="submit" value="submit" /> 

在你的表單標籤,包括的onsubmit()事件爲

<form 
    action="/path/to/server/side/script" 
    name="testform" 
    onsubmit="return validate()" 
    > 

如果驗證失敗,則validate()函數應返回true;如果驗證失敗,則返回false。 例如

function validate(){ 
    if(...){//valid 
     return true;  
    }else{//not valid 
     return false; 
    }  
} 

編輯: 始終指定按鈕類型。如果未指定,則在IE中默認爲「按鈕」,而在Chrome和Firefox中默認爲「提交」。

<form action="my/script" onsubmit="return ValidateFunc();"> 
<button type="submit"> <img src="image/do_this_with_input_tag.png"> Some Text </button> 
</form> 

未來,如果您想要正確的答案,請在您的問題中包含更多詳細信息。

+0

這就是INPUT標籤的工作原理,與BUTTON標籤不同。 – Justin808 2010-10-26 03:07:33

+0

我編輯了答案,檢查出來 – 2010-10-26 03:34:23

+0

一旦我回到辦公室,我會嘗試type =「submit」屬性。 – Justin808 2010-10-26 08:38:02

0

我使用(虛設/不可見)輸入字段內形式絕對定位與該CSS:

<input class="dummy" type="submit" /> 

.dummy { 
    position:absolute; 
    bottom:0px; 
    right:0px; 
    padding:0px; 
    margin:0px; 
    border:0px; 
    font-size:0px; 
    line-height:0px; 
} 

只要避免使用顯示:無或能見度:隱藏或寬度:0像素等僅使用本CSS我提供。

2

我只是通過將type="submit"添加到按鈕來解決這個問題。

<button>Submit</button>未在IE7中提交。

<button type="submit">Submit</button>確實在IE7中提交。

0

我IE11有同樣的問題與另一個表單中提交按鈕:

<form id="form1"> 
    ... 
</form> 
<form id="form2"> 
    ... 
    <button type="submit" form="form1">OLA KE ASE</button> 
    ... 
</form> 

你可以解決它usign的JavaScript,我用jQuery做這件事是一個通用的方法。

$(document).ready(function() { 
    $('button[type=submit]').on('click', function() { 
     if ($(this).attr('form') != '') { 
      document.getElementById($(this).attr('form')).submit(); 
     } 
    }); 
});