我有一个表单,在验证之后我获取数据并更新我弹出的隐藏表单或者只需要隐藏并需要发布到操作。
从隐藏我从代码手动提交 错误是总是通过提交引导来刷新页面。重定向
我的 js 代码:(可能是错字)。 - 表单验证
form.validate({
ignoreTitle: true,
onfocusout: function (element) {
if (!this.checkable(element)) {
this.element(element);
}
},
onkeyup: false,
rules: {
firstName: {required: true, minlength: 2, maxlength: 45},
lastName: {required: function () {
return checkField("lastName")
}, minlength: 2, maxlength: 45},
},
messages: {
firstName: {required: FieldRequiredStr, minlength: invalidFirstName, maxlength: invalidFirstName},
lastName: {required: FieldRequiredStr, minlength: invalidLastName, maxlength: invalidLastName},
},
onsubmit: true,
submitHandler: function (frm) {
if(!form.valid())return;
$("#send",form).attr('disabled', 'disabled');
$("#send",form).addClass('sent');
form.ajaxSubmit(
{
url: "api.php",
dataType: 'xml',
success: function (response) {
var xml;
if (typeof response == 'string') {
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(response);
}
var url = "https://url/login"
console.log(url);
$('#frm2').attr('action', url );
$('#email').val($("#email",frm).val());
$('#password').val($("#password",frm).val());
// $.fancybox({href: '#make-deposit'});
//$("#frm2").submit();
//
setTimeout(function () {
$("#frm2").submit();
}, 2000);
}
}
});
},
errorPlacement: function (error, element) {
//this is working good
// A bit ugly.
}
我的隐藏表单(即使没有隐藏点击提交也会刷新)
<div style="display:none;">
<form id="frm2" method="post" action="https://url/login" target="">
<input type="hidden" id="email" name="email" value="" />
<input type="hidden" id="password" name="password" value="" />
<input class="dbtn" type="submit" name="btn" id="btn" value="btn" />
</form>
</div>
它在 Action 的 url 末尾没有斜杠的情况下工作 但是在那种情况下不会发送发布数据
最佳答案
这是因为表单已提交。您需要在提交处理程序中返回 false,如下所示:
submitHandler: function (frm) {
//Your code here
return false;
}
关于javascript - 从隐藏表单提交按钮刷新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51883933/