仅发布隐藏字段


Only hidden fields are posted

这是我这辈子第一次,从来没有见过这个,我在过去的 20 年里一直做这份工作......

我有一个客户,遇到表单问题,当您提交表单时,仅发送隐藏字段和静态值。

模拟。。。

在代码中我有这个

<form action="index.php?option=com_kocgc&format=raw&task=preview_card&lang=en" method="post" name="ko_cgc" id="ko_cgc">
    <input type="text" name="ko_smail" id="ko_smail" class="koInputBox" value="Bill" />
    <input type="hidden" name="id" id="id" value="123"> 
    <div class="btn btn-warning koBtn" id="koBtnSave">Save</div>
    </form>

如果我在比尔旁边的文本框中输入"很难过",现在我在文本框中有"比尔很难过"。如果我提交它,我只得到比尔和隐藏字段 ID 的 123,如果我清空字段,javascript 会告诉该字段为空如果我在文本框中输入 Ginger 并提交它,我总是会收到 Bill,但如果我用 javascript 拦截表单,一切都是完美的,只有在服务器端 (PHP) 我得到了空表单??????

我使用 print_r($_POST); 查看结果

此代码仅在该服务器上的另一台服务器上工作正常,我遇到了这个奇怪的问题。

我在这里问这个问题,以防万一有人已经经历过并找到了原因,因为我很确定这将在我的奇怪书中很长一段时间:O)

如果我找到它,我会发布原因。

非常感谢

编辑

这是我用来提交表单的javascript

jQuery('#koBtnSave').click(function(){      
        var valid = validField(jQuery("#ko_smail"), "text");            
        if(valid == true) {
            jQuery("#ko_cgc").attr("action","index.php?option=com_kocgc&format=raw&task=save_card&lang=en");
            jQuery("#ko_cgc").attr("target","_self");
            jQuery("#ko_cgc").submit();
        }       
    });

validField 函数仅检查 if(field.attr("value") == ") {,如果为空则返回 false。如果我对jQuery("#ko_smail").attr("value")发出警报或.log 当我执行print_r($_POST)时,我仅在PHP端具有正确的值,我得到了错误的值????

我搁置了这件事,直到明天我会调查更多。

问候

为什么使用div而不是submit按钮?

<div class="btn btn-warning koBtn" id="koBtnSave">Save</div>

将其更改为如下所示:

<input type = "submit" class="btn btn-warning koBtn" id="koBtnSave" value="Save" />
啊,

我找到了这个奇怪问题的答案。

客户为他的网站启用了CloudFlare缓存,我要求禁用它,问题消失了,我要求启用它并恢复原始设置,问题是历史。

我认为他在场景中踢球,并对形式做了一些事情。

无论如何,这是一个代码 12 :O)

问候所有人