gpt4 book ai didi

javascript - Yii 和 Javascript 表单提交

转载 作者:行者123 更新时间:2023-11-28 01:17:22 25 4
gpt4 key购买 nike

我使用 Yii 作为我网站的 PHP 框架。此外,我的网站使用一些 js/jquery,例如 jQuery UI 对话框小部件(除了这些对话框之外,其余代码是纯普通 html 表单组件和事件处理程序的 jQuery 代码)。

在 Yii 方面,我使用 CForms to build my forms from specifications file .

当我测试表单是否已提交时,我必须针对某个按钮执行此操作。这不仅是被迫的,而且也是我利用的。

if ($myCFormInstance->submitted('approve')) {
//process approval code
} else if ($myCFormInstance->submitted('reject')) {
//process rejection code
}

我遇到的实际问题有点概念性,因为-幸运的是-我知道我的代码发生了什么,并且-再次幸运的是-知道问题根源:

在我的代码中的某个地方我拦截了提交按钮的点击事件:

$(function(){
$(".critical-action").click(function(e){
var form = $(this).closest("form");
e.preventDefault();
e.stopImmediatePropagation();
confirmDialog("¿Continuar?", "#critical-action-dialog", function(){
form.submit();
});
});
});

假设 .ritic-action 类元素始终是表单中的提交按钮。

代码的意图:取消表单提交,并且仅当用户在对话框中单击“是,继续”(即确认操作)按钮时才执行表单提交。

此代码按预期工作,并且在 javascript 级别没有问题,但是 - 这就是我的问题 - 执行 form.submit() 时,按钮不会作为表单的一部分发送 。这是显而易见的:我发送表单时没有指定任何按钮。对于具有两个按钮的“批准”和“拒绝”,该示例本身就说明了这一点:如果 form.submit() 调用可以发送它们的按钮,那么应该发送哪个按钮?

问题:所以,由于 form.submit() 不发送任何按钮,但我实际上需要按钮,我该怎么办“使用相应的按钮”发送表格 - 即我选择指定的按钮,它应该通过 javascript 自动对应于点击处理函数上下文中的 this ?按钮需要由 Yii 识别才能处理表单(特别是批准和拒绝情况)。

最佳答案

如果您向表单添加了隐藏输入,则可以在提交表单之前使用 jQuery 修改输入值,如下所示:

$("#inputID").val('approve');

如果您想通过 $(this).val() 将值设置为单击的按钮的值,请注意可能导致 IE 浏览器出现的问题,请解释 here 。第二个答案(后后现代)解决了这个问题。

关于javascript - Yii 和 Javascript 表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23681267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com