使用我的CakePHP注册表单,单击“提交”按钮后,我只想显示“Javascript确认”对话框,该对话框的工作方式如下:
但是在这里,当我按下取消时,虽然它被提交了。不知道为什么?
CakePHP表格代码:
<?php echo $form->create('Noncompetitor', array('type' => 'file', 'url' => '/register', 'onSubmit' => 'confirmfrmSubmit();'));?>
我的JS代码:
function confirmfrmSubmit(){
var agree=confirm("Are you sure you wish to continue?");
if (agree)
return true ;
else
return false ;
}
如果你的同事对此有所了解,请告诉我。
谢谢!
答案 0 :(得分:9)
也可以使用更简单的方法,试试这个:
$this->Form->create('Request',array('onsubmit'=>'return confirm("are you sure?");'))
答案 1 :(得分:5)
更新:感谢bicycle修复我的破解回调。请参阅下文了解详情。 (而StackO的一个大覆盆子不允许答案作者对接受编辑有最终决定权。)
这是使用jQuery的解决方案:
<?php
$this->Html->scriptBlock("
jQuery(function($){
$('form.noncompetitor').submit(function(event){
if (!confirm('Are you sure?')) { return false; }
});
});
",array('inline'=>false)); // inline => false will put this snippet in the DOM's head.
echo $this->Form->create('Noncompetitor',array(
'type'=>'file','url'=>'/register',
'default'=>false,'class'=>'noncompetitor'
));
/* The rest of your form */
答案 2 :(得分:2)
我认为你的函数失败了,因为你实际上从来没有从confirmfrmSubmit()返回值。
尝试将返回部分添加到onSubmit字段,如下所示:
<?php echo $form->create('Noncompetitor', array('type' => 'file', 'url' => '/register', 'onSubmit' => 'return confirmfrmSubmit();'));?>
您的JS代码应该按原样工作,问题只是在调用onSubmit处理程序时,确认值永远不会传递给表单。
P.S。请注意,您可以在JS代码中执行以下操作:
return confirm("Text");
希望这有帮助。
答案 3 :(得分:1)
我找到了一个非常简单的解决方案:
<?php echo $form->create('ModelName', array('type' => 'file', 'url' => 'url', 'name' => 'frmRegister', 'onsubmit' => 'validatefrm(); return false;')); ?>
使用 onsubmit 功能,我只需定义'validatefrm();返回false;'
function validatefrm(){
// my condition, when i needs it to submitted
document.frmRegister.submit();
return true;
}
并发现它工作smooch:)
如果有帮助,请告诉我。
答案 4 :(得分:1)
在开始时你实际上只有99%...你只需要在调用验证函数之前添加'return'。
<?php echo $form->create('Noncompetitor', array(
'type' => 'file',
'url' => '/register',
'onSubmit' => 'return confirmfrmSubmit();'));
?>
会这样做。
答案 5 :(得分:0)
有以下步骤: -
- 包含此jquery文件 -
echo $this->Html->css('/css/jquery-confirm.min.css', ['block' => 'css']);
创建提交按钮
<?= $this->Form->button('<i class="fa fa-check"></i><span class="hidden-xs"> ' . __('Save') . '</span>', ['type' => 'submit', 'escape' => false, 'id' => 'submit_form_id', 'class' => 'btn green', 'title' => 'Save']); ?>
$('body').on('click', '#submit_form_id', function (e) {
e.preventDefault();
var submitFormVar=1;
if (submitFormVar!= 0) {
$.confirm({
title: '',
content: 'Do you want to stop submit form' ,
buttons: {
ok: function () {
$(form).submit();
},
cancel: function (o) {
return o;
}
}
});
} else {
$(form).submit();
}
});
Jquery代码