我开发了以下代码,在使用 AJAX 提交表单的上下文中使用它。这不完全是您的情况,但相同的代码将使您的<input type="submit">
值被提交:
function submit_click() {
var $input = $(this);
var name = $input.attr('name');
if (typeof name == 'undefined') return;
var value = $input.attr('value');
var $form = $input.closest('form');
var $hidden = $('<input type="hidden" />').attr('name', name).attr('value', value);
$form.find('input[type=hidden][name="' + name + '"]').remove();
$form.append($hidden);
};
$(document).on('click', 'form.ajax input[type=submit]', submit_click);
我使用class="ajax"
表单元素中的 来激活此代码。您可以根据自己的需要进行更改。
它能做什么?它创建一个隐藏的表单输入,与单击的提交输入具有相同的名称和值。因此,当帖子稍后以编程方式发生时,该值已正确提交。
啊,你问what could be preventing value from being passed
...验证插件捕获表单提交,并执行它的东西。验证后,触发表单提交。发生这种情况时,不再<input>
是触发表单提交的元素单击。它是插件的 JavaScript 代码。因此,“ <input>
”点击事件丢失了。这就是它没有提交的原因。(有道理吗?如果这个解释写得不好,请告诉我。)