2016-08-26 6 views
-1

私は、ボタンをクリックして、進行したいかどうかを確認するためのポップアップが必要なウェブサイトを持っています。リンクを使用してポップアップがいくつかあるが、ポップアップが付いたボタンはありません。私はいくつかのことを試しましたが、彼らは私が望むように動作しません。現在、私は持っている:そしてボタンクリックからのHTMLポップアップ

<p>Copy website files from MAFINFWWWPV02 to MAFINFWWWPV01</p> 
<form action='Admin.php' enctype='multipart/form-data' method='post' onclick="myFunction()"> 
    <input type='hidden' name='action' value='CopyFiles'/> 
    <p><input type='submit' name='submit' value='Copy Files'/></p> 
</form> 
<p id="demo"></p> 

と、この:

<script> 
function myFunction() 
{ 
    var x; 
    if (confirm("Copy all files?") == true) 
    { 
     x = "You pressed OK!";/*Want this to run the .bat*/ 
    } 
    else 
    { 
     x = "You pressed Cancel!";/*Want this to not run the .bat*/ 
    } 
    document.getElementById("demo").innerHTML = x; 
} 

これは.BATファイルを実行します。これは、[OK]または[キャンセル]ボタンをクリックしたかどうかに関係なく実行されます。私は「OK」をクリックし、.batを実行するか、「キャンセル」をクリックして実行しません。私はそれが走るのを止める方法を知らない。

私のコードには、ページ上のボタンから「アクション」を探すswitch($_REQUEST['action'])があります。このcaseにとっては、このん:だから、あなたがフォームでをクリックすると、そのイベントを発生するために起こって

<form action='Admin.php' enctype='multipart/form-data' method='post' onclick="myFunction()"> 

:ここ

case 'CopyFiles': 
$script = chr(92) . chr(92) . 'MAFINFWWWPV02\D$\WebContent\engsys.corp.ftr.com\BatchFiles\CopyFiles.bat'; 
system('cmd /c ' . $script); echo " <br>"; 
break; 
+0

なぜ票を落としましたか? – Mike

答えて

1

クリックイベントがフォームです。私はあなたが

<form action='Admin.php' enctype='multipart/form-data' method='post' onsubmit="myFunction()"> 

はまた、あなたが実際にconfirm()応答以下のフォームポストをキャンセルする必要が?:代わりにをonSubmitイベントでそれをしたいと思います。まず、関数呼び出しにreturnを追加します。

<form action='Admin.php' enctype='multipart/form-data' method='post' onsubmit="return myFunction()"> 

その後、あなたはまた、「デフォルトの防止」と「falseを返す」の組み合わせを使用することをお勧めします。このような何か:confirm()応答がtrueある場合

function myFunction(e) 
{ 
    e.preventDefault(); // here 
    var x; 
    var response = confirm("Copy all files?"); 
    if (response == true) 
    { 
     x = "You pressed OK!"; 
    } 
    else 
    { 
     x = "You pressed Cancel!"; 
    } 
    document.getElementById("demo").innerHTML = x; 
    return response; // and here 
} 

ので、機能はtrueを返し、フォームを提出することを続けています。それ以外の場合、関数はfalseを返し、フォームは送信されません。

フォームが送信されると、ページが更新されるため、demo要素への更新はなくなります。

+1

パーフェクト、まさに私が欲しかったことでした。私は本当にデモ要素の更新を心配していませんでした。ちょうどクリックが何かをしたので、私は実際に 'if'文全体を取り除き、' var x = confirm( "Copy allファイル? "); xを返す。 – Mike

関連する問題