2016-04-06 4 views
0

ウェブサイトにフォームがあり、JSを使用して検証しています。私が持っている問題は、フォームが検証に失敗した後、ブラウザはユーザーが入力したデータをクリアすることです。ブラウザでフォームデータを消去する

ボタンから「提出」型の値を取り除き、JSを使用してフォームを送信しようとしました。私のコードは、すべての問題の数を保ち、個別に各フィールドをチェックし、カウントは私のボタンのコードが

HTML 
<button tabindex = "18" id = "submitForm" onclick = "validateForm();">Submit</button> 

これは単にIEに限定されるものではなく、0

function validateForm() 
{ 
    var errors = 0; 
    // if test fails errors++ 

    if(errors > 0) 
    { 
     alert("Please correct the following " + errors + " error(s):\n" + errorList); 
    return false; // I assumed this would prevent the form submitting 
    } 
    else 
    { 
     document.forms[0].submit(); 
    } 
} 

ある>場合のみ提出してくださいFirefoxでも発生します。エラーに関係なくすべてのフィールドが完全である限り、フォームが送信されているようです。

+0

ボタンに新しいプロパティを追加するには、 'type =" button "'のようにします。 'validateForm();'の後に 'return false;'を追加します。この行はhtmlボタン用です。 – Jer

答えて

0

次の関数を使用します<button>の場合、デフォルトのタイプはsubmit、タイプはbuttonを送信したくない場合は、

1

onclick = "return ValidateForm();"としてjavascript関数を呼び出します。

また、ValidateForm()がtrueを返す場合は、フォームが送信されるため、「document.forms [0] .submit();」と書く必要はありません。

function validateForm() 
{ 
    var errors = 0; 
    // if test fails errors++ 

    if(errors > 0) 
    { 
     alert("Please correct the following " + errors + " error(s):\n" + errorList); 
    return false; // I assumed this would prevent the form submitting 
    } 
    else 
    { 
     return true; 
    } 
} 

<input type="submit" value="Submit" tabindex = "18" id = "submitForm" onclick= "return validateForm();" /> 
0

それとも、単に行うことができます:

function validateForm(event) 
{ 
    var errors = 0; 
    // if test fails errors++ 

    if(errors > 0) 
    { 
     alert("Please correct the following " + errors + " error(s):\n" + errorList); 
     return false; 
    } 
    return true 

ボタンを

<button tabindex = "18" id = "submitForm" onclick = "return validateForm(event);">Submit</button> 

をしかし、私はあなたがこのためにjQueryを使用することをお勧め:jquery submit

関連する問題