[英]Javascript confirm delete - if no do not submit form? Codeigniter
是否有一個Javascript會阻止表單提交按鈕執行一個功能
我正在使用使用MVC模式的CodeIgniter框架。
因此,當您單擊按鈕時,它會調用控制器函數,然后調用模型函數等。
我嘗試在Javascript中使用各種各樣的東西,包括回去,歷史回去。 有什么能阻止任何事件發生嗎?
這是我的代碼:
function confirmation() {
var answer = confirm("Delete Record?")
if (answer)
{
}
else
{ //reloads current page - however it still continues to function
window.redirect("http://localhost/midas/index.php/control_panel/user_records");
}
}
如果我說“取消”,它仍然繼續執行該功能。 有沒有辦法阻止瀏覽器?
這是我的PHP代碼:
//js = is a variable which stores the javascript code
echo form_submit('view','View', $js);
這樣就創建了html輸出:
<input type="submit" onclick="confirmation()" value="View" name="view">
您需要將javascript事件放在表單標記中並使用onSubmit
而不是onClick
,此外,您不需要外部js。
<form action="url/to/form" onSubmit="return confirm('are you sure?')">
</form>
在導致POST的按鈕上..然后對該按鈕的OnClick事件進行函數調用。 讓該函數返回true以繼續POST或返回false以取消該操作。
function confirmation() {
var answer = confirm("Delete Record?")
if (answer) {
} else {
//reloads current page - however it still continues to function
return false;
}
}
也許返回false方法將停止表單提交。 取決於你如何調用確認功能。
嘗試添加return false;
在window.redirect
之后的else
語句的末尾。
編輯:
看完你的onclick
事件代碼后,我建議你改變你的onclick
看起來像這樣:
<input type="submit" onclick="confirmation(); return false;" value="View" name="view">
使用codeigniter表單助手,它將是:
echo form_open('url/to/form', array('onsubmit'=>'return confirm(\'use triple escape to escape special chars like \\\'quotes\\\'. \')'));
我創建了一個視圖助手,並為此效果做了一些事情
function delete_button($id)
{
$button = form_open(current_url().'/delete');
$button .= form_hidden('id', $id);
$button .= form_submit(array(
'name' => 'delete',
'onclick' => "return confirm('are you sure you wish to delete?');"
), 'Delete');
$button .= form_close();
return $button;
}
然后在我看來,我將使用<?= delete_button($row->id) ?>
來呈現必要的表單並提交(刪除)按鈕代碼。 由於javascript confirm()
方法返回一個布爾值,我們可以簡單地return
該方法,因為當用戶在確認對話框上取消時它將返回false
,並且自然會returns false;
將阻止它繼續進行表單操作。
PHP代碼:
$attributes = array('id' => 'formId','onsubmit'=>'return validate()');
echo form_open('controller', $attributes);
其中validate()是在提交時調用的javascript函數。 如果它返回false,表單將不會提交。 :-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.