我有这段代码,但表单不会提交。 有什么想法吗?
$(document).ready(function(){
$("#login_form").submit(function(e){
e.preventDefault();
var password = $("#password").val();
var p = document.createElement("input");
$("#login_form").append(p);
p.name = "p";
p.type = "hidden";
p.value = hex_sha512(password);
$("#password").val('');
$("#login_form").submit();
});
});
#password的值确实重置为空,因此ID正确。
答案 0 :(得分:2)
您不需要e.preventDefault();
,它会阻止表单提交,因此您应该删除e.preventDefault();
。
$(document).ready(function () {
$("#login_form").submit(function (e) {
var password = $("#password").val();
var p = document.createElement("input");
$("#login_form").append(p);
p.name = "p";
p.type = "hidden";
p.value = hex_sha512(password);
$("#password").val('');
});
});
答案 1 :(得分:1)
表单未提交,因为您已在其中e.preventDefault
停止提交。然后,您再次触发submit
事件,并在递归循环中陷入困境。
删除e.preventDefault
。
答案 2 :(得分:0)
删除e.preventDefault();
,它会阻止表单提交甚至触发提交事件
$(document).ready(function(){
$("#login_form").submit(function(){
var password = $("#password").val();
var p = document.createElement("input");
$("#login_form").append(p);
p.name = "p";
p.type = "hidden";
p.value = hex_sha512(password);
$("#password").val('');
});
});
答案 3 :(得分:0)
进行更改后触发本机提交
$(document).ready(function(){
$("#login_form").submit(function(e){
e.preventDefault();
var password = $("#password").val();
var p = document.createElement("input");
p.name = "p";
p.type = "hidden";
p.value = hex_sha512(password);
$("#login_form").append(p);
$("#password").val('');
this.submit(); // native handler
});
});
在插入隐藏输入后触发本机提交确保在提交表单时它就在那里。