我当前正在尝试在表单提交期间更改表单中隐藏输入的值。所以首先我要隐藏输入:
<input autocomplete="off" class="um-form-field valid not-required " type="text" name="webauthn_result-320" id="webauthn_result-320" value="" placeholder="" data-validate="" data-key="webauthn_result">
现在我正在使用此功能在提交表单之前做一些事情。为了将结果传递到后端,我想修改表单,以便可以在PHP中使用$_POST
来访问它们:
jQuery(document).on('submit', '#login-form', function () {
var someVarialbel = 20;
jQuery('input[data-key=webauthn_result]').val(['success', someVarialbel]);
});
可悲的是,它不起作用。我检查了后端,该值为空。知道怎么了吗?
答案 0 :(得分:2)
尝试这样的事情。
您将需要使用
preventDefault
进行任何更改。
$("#form_id").on("submit", function (e) {
e.preventDefault();//stop submit event
var self = $(this);//this form
$("#change_value").val("deneme");//change input
$("#form_id").off("submit");//need form submit event off.
self.unbind('submit');
self.submit();//submit form
});
答案 1 :(得分:0)
来自jQuery文档:Here is the link
例如,考虑HTML:
<form id="target" action="destination.html"> <input type="text" value="Hello there"> <input type="submit" value="Go"> </form> <div id="other"> Trigger the handler </div>
事件处理程序可以绑定到以下形式:
$( "#target" ).submit(function( event ) { alert( "Handler for .submit() called." ); event.preventDefault(); });
现在,提交表单后,将提醒该消息。这是在实际提交之前发生的,因此我们可以通过在事件对象上调用.preventDefault()或从处理程序中返回false来取消提交操作。单击另一个元素时,我们可以手动触发事件:
答案 2 :(得分:0)
您可以按以下格式以JSON格式设置值:
jQuery(document).on('submit', '#login-form', function () {
var someVarialbel = 20;
jQuery('input[data-key=webauthn_result]').val(JSON.stringify(['success', someVarialbel]));
});
希望它对您有帮助!