2011-10-26 9 views
0

確認ウィンドウでフォームをリセットしようとしています。私のjavascriptのため、その後フォームをJavaScriptでリセットする

<input type="reset" value="Reset" onclick="showReset();"/> 

::私は確認ウィンドウにキャンセルヒットすると

function doReset() { 
    var formElements = document1.form1.elements; 
    for (var i = 0; i < formElements.length; i++) { 
     formElements[i].value = ""; 
     if (formElements[i].checked) { 
      formElements[i].checked = false; 
     } 
    } 
} 

function showReset() { 
    if (window.confirm("Do you really want to reset the form?")) { 
     doReset(); 
    } 
} 

、フォームがまだリセットされると、私はなぜわからない私のHTMLは次のようになります。ありがとう。

答えて

2

。 showReset()関数にfalseを返すことで、デフォルトのボタンアクションを防ぐことができます。デフォルトブラウザの動作をしたいだけ確認ダイアログをしたい場合は、理由だけ確認を使用しないで、代わりに

<input type="reset" value="Reset" onclick="return showReset();"/> 

function showReset(e) { 
    if (window.confirm("Do you really want to reset the form?")) { 
     doReset(); 
    } 
    return false; 
} 

また、onclickのハンドラはshowResetの結果を返すことを確認してください?これと同じように:

<input type="reset" value="Reset" onclick="return window.confirm('Do you really want to reset the form?');"/> 

これは単に「何をするか」が、あなたはより多くの情報を取得したい場合は、これらのスレッドでいくつかの良い情報があります:

2

入力タイプがリセットされているため、リセットされます。そのボタンか何かを作成し、ちょうどこのように、フォームのリセット方法を使用します。私は質問を理解していれば、ポイントは、デフォルトの動作をバイパスし、代わりにあなたの関数を使用することです

document.form1.reset(); 

MDN Docs

0

それを行う別の方法:

var r=confirm("Do you really want to reset the form?"); 
if(r==true){ 
//Reset logic 
}else{ 
//Dont reset logic 
}