如何使用JavaScript/jQuery在提交之前查看POST值

问题描述:

我被卡住了。我的公司正在重新设计它的网站,但我坚持尝试在旧网站上进行修复以解决问题。我需要使用JavaScript或jQuery。如何使用JavaScript/jQuery在提交之前查看POST值

当提交表单时,POST键被发送到以“selectedItem_”开头的服务器,后面是项目ID。附在其上的值是按钮“购买此”的文本。完整的关键字:值对看起来是这样的:

selectedItem_IDME1KEXN_0_0 : "Buy This" 

由于形式有几种不同版本的同一项目,谁编程这把表格上的几个按钮,每个按钮用这种密钥。所以可能有多达4个或5个几乎相同的按钮。分配给它们的值是actualy价格,像这样:

selectedItem_IDME1KEXN_0_0 : 93.95 
selectedItem_IDME2KEXN_0_0 : 99.95 
selectedItem_IDME3KEXN_0_0 : 114.95 
selectedItem_IDME4KEXN_0_0 : 119.95 

所有这些都越来越发送到服务器,这是导致服​​务器有时会选择错误的值。 (我不知道为什么它被编程这样的,我只是想对付它!)

我的问题:

我如何使用JavaScript或者jQuery来评估什么是目前存储在后在它被发送到服务器之前?我很想遍历以“selectedItem_”开头的键,并在发送之前将任何不正确的键取出。

+0

您没有远远不够的信息在你的问题,但是,可能会绑定到表单的'submit'事件,拦截正在提交的表单数据,甚至可能取消/阻止提交表单。顺便说一句,关于*的一个很好的问题显示了你所尝试过的东西(它被称为[最小,完整和可验证示例](http://*.com/help/mcve)) –

+0

另外 - 这听起来像一个相当“企业“网站 - 你为什么坚持使用JavaScript?你不能修改服务器端代码吗? –

+0

@cale_b - 我很想修改服务器端代码,但是所有的前端开发人员都致力于新的代码库。只有旧网站和旧代码库允许修复。 (呃) – cmdoc

您可以将事件绑定到表单的submit事件,然后查看数据。

var $form = $('form').first(); 
 

 
$form.on('submit', function(e) { 
 
    e.preventDefault(); 
 
    console.log($form.serializeArray()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form method="POST" action=""> 
 
    <input type="text" name="key1" /> 
 
    <input type="text" name="key2" /> 
 
    <input type="submit" /> 
 
</form>

+0

谢谢!这至少让我朝着正确的方向前进!让我玩弄这个,看看我能做些什么。 – cmdoc

+0

你的代码绝对让我指出了正确的方向。谢谢! – cmdoc

如果所有的数据都是从输入标签的形式,然后再尝试这样的事:

document.querySelector('form').addEventListener('submit', function (e) { 
    var input = document.querySelectorAll('input[name^="selectedItem_IDME"]'); 
    var valid = true; 
    for (var i = 0; i < input.length; i++) { 
     var item = input[i]; 
     if (Number(item.value) === 93.95) { 
      valid = false; 
      e.preventDefault(); 
     } 
    } 
}); 
+0

如果我正在处理静态页面,这可能会起作用。但是,所有的订单都是根据当时库存情况动态生成的,价格随时可能变化。所以我的解决方案也必须是动态的。 – cmdoc