2016-05-25 16 views
-1

私はこれをできる限り明確にします。jQueryのアラート確認によるフォームの送信

基本的に私のフォームでは、選択ボックスからプレーヤーを削除することができます。

ユーザーが「削除」を押すと、続行するとそのデータを戻すことができないことを示す確認ボックスが表示されます。意図した動作は、ユーザーが "OK"を押すと、削除スクリプトが実行され、プレーヤーを削除することです。確認ボックスを削除して、送信ボタンのデフォルトの動作を許可すると、それは私が望むように機能します。私はその中間段階を加えることができれば、もっと専門的になります。

<form id="player-list" action="edit-player.php?playerid=22" method="post"> 

       <div id="player-box" class="row"> 
        <div class="small-12 medium-offset-4 medium-4 columns"> 
         <label>Team 
          <select id="all-players" name="team-division"> 
          <?php 
           $SQL = "SELECT 
              ID, 
              firstName, 
              lastName 
             FROM 
              players"; 
           $playerResult = mysqli_query($link, $SQL); 
           $counter = 1; 

           while($row = mysqli_fetch_array($playerResult)) { 
            echo '<option value="player-' . $row['ID'] . '">' . substr($row['firstName'], 0, 1) . " " . $row['lastName'] . '</option>'; 
           } 

          ?> 



          </select> 
          <br /> 
         </label> 
        </div> 
       </div> 

       <div class="row"> 
        <div class="small-12 medium-2 medium-offset-4 columns "> 
         <a id="player-selection" class="button expanded radius success">Submit</a> 
        </div> 
        <div class="small-12 medium-2 columns end"> 
         <input type="submit" id="player-deletion" class="button expanded radius alert" name="delete-player" value="Delete" /> 
        </div> 
       </div> 
      </form> 

入力#プレイヤー欠失タグがここで重要なものです:

は、ここに私の関連するHTMLコードです。

関連のjQueryコード:

$("#player-deletion").on('click', function(e) { 
     e.preventDefault(); 

     var x; 
     if (confirm("This record will be permanentely deleted. Is that OK?") == true) { 
      $(e).trigger('submit'); 
     } 
    }); 

このコードは動作しません。私は、デフォルトのアクションが起こらないようにしなければならないことを知っていますが、ユーザーが「OK」をクリックした後、確認ボタンから送信機能を再開したいと思います。

これは可能ですか?

ご協力いただければ幸いです。

ありがとうございました。

+0

*にif文 "私はrefire確認ボタンから機能を提出したいと思います。" *なぜ?とにかくデフォルトのアクションを防ぐことができなかったら、それは発砲したでしょう。 –

答えて

0

confirmが返すものだけで返すことができます。 return falseは、e.preventDefault()e.stopPropagation()を呼び出すのと同じです。イベントの伝播を停止すると、送信がキャンセルされます。

$("#player-deletion").click(function(e) { 
    return confirm("This record will be permanentely deleted. Is that OK?"); 
}); 

JSFiddle Example

+0

申し訳ありませんがあなたに戻って時間がかかりました。仕事などで忙しかった。あなたのソリューションは正常に動作します。ありがとう。 – Chosen1

0

ユーザが確認ダイアログでキャンセルを押した場合は、falseを返す必要があります。それ以外の場合は、デフォルトフローを実行します。

$("#player-deletion").on('click', function(e) { 
    if (!confirm("This record will be permanentely deleted. Is that OK?")) { 
     return false; 
    } 
}); 
0

変更

if (confirm("This record will be permanentely deleted. Is that OK?") == true) { 
    //submit regardless 
} else { 
    e.preventDefault();//do something other here 
} 
関連する問題