[英]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.