0

こんにちは、私は現在、javascript の削除検証機能に取り組んでいます。これが私のコードです。

  function confirmDelete(){
var agree = confirm("Are you sure you want to delete this file?");
  if(agree == true){
    return true
}
else{
return false;
}
}

アラートダイアログボックスが表示されますが、「キャンセル」ボタンを押すたびにテーブル内のファイルが削除されます

ここに私のHTMLがあります:

<a href=".base_url()."main/delete?id=$row->id>"."<i class='icon-trash' rel = 'tooltip' title = 'Delete' id = 'delete' onClick = 'confirmDelete();'></i></a>";

私は CodeIgniter を使用しています。みんなありがとう!:)

4

4 に答える 4

1

クリック時は<a>ではなくにある必要があるため<i>です。また、confirm戻り値trueまたはを考慮して、関数を単純化することもできますfalse

function confirmDelete(){
    return confirm("Are you sure you want to delete this file?");
}
于 2013-08-01T02:36:09.470 に答える
1

タグ内で直接実行してください:

   <a href=".base_url()."main/delete?id=$row->id>"  OnClick="return confirm('Are you sure you want to delete this book?');"> Delete </a>
于 2013-08-01T02:51:18.497 に答える
1

javascript 関数を呼び出す場所で return ステートメントを使用してみてください。以下のように:

<a href=".base_url()."main/delete?id=$row->id>"."<i class='icon-trash' rel = 'tooltip'   title = 'Delete' id = 'delete' onClick = 'return confirmDelete();'></i></a>";
于 2013-08-01T03:22:03.300 に答える
0

event.preventDefault()false を返すだけでブラウザーの動作が妨げられない場合は、 を呼び出します。

event または .. への参照を取得する必要がありますが、window.eventこれはブラウザ固有のものです。jQuery などはこれに役立ちます。

onclick="if (! confirm('Are you sure you want to delete this book?')) event.preventDefault();"

(しかし、上記の例では、もはや 'false' を返していません。理想的には、コードをメソッドに入れ、両方とも false を返し、確認が否定的である場合はデフォルト防ぎます。)

それが機能するかどうかをテストするには、最も簡単に:

onclick="event.preventDefault();"

以下も参照してください。

e.preventDefault() will prevent the default event from occuring,「false」を返すこととe.stopPropagation()` を返すことの違いにより、バブルアップ/外側および外側のデフォルトの発生が防止されますが、「false」を返すとバブルが停止しません。

したがってonclick、デフォルトのアクションを実行するハンドラーをリンクに配置する方がよいのではないでしょうか?

于 2013-08-01T02:56:56.863 に答える