gpt4 book ai didi

java - 递归调用提交时的 JQuery 表单

转载 作者:行者123 更新时间:2023-12-03 12:28:37 29 4
gpt4 key购买 nike

我正在使用 Jcryption 算法在 JavaScript 中对用户名和密码进行加密。并使用Java解密。在该过程中,在以 JavaScript 形式提交加密过程完成之前。在 Java 中,我没有获得加密的用户名和密码。我得到了正常值,因此在加密过程完成后,我无法提交表单并在表单提交中写入代码,我正在调用提交事件,但多次提交表单。给我建议是否有任何方法可以解决问题。或者有任何替代方法可以解决问题。

提前致谢

我的 HTML 代码

    <form name="frm" method="post" action="/xsl-portal/xlogin" onSubmit="" target="_parent"  autocomplete="off"> 
<input type="text" maxlength="45" name="eid1" id="eid1" />
<input type="hidden" maxlength="45" id="eid" name="eid" />
<input type="password" id="pw" name="pw" />
<input type="image" src="home-images/button-submit.png" id="submitButton" value="Submit" name="image" onclick="submitButtonClick();" />

<input type="hidden" value="" name="submit" id="submit"/>
</form>
Javascript code
    var keys='';

function getKeys() {
$.jCryption.getKeys("/sakai-login-tool/EncryptionServlet?generateKeypair=true", function(
receivedKeys) {
keys = receivedKeys;

});
}
getKeys();
var encryptedUser='';
var encryptedPassword='';

/* 表单提交代码*/

// $('#submitButton').on('click',function(){
function submitButtonClick(){



}
// });

$('form').submit(function(e) {
e.preventDefault();
var user=$('#eid1').val();
var password=$('#pw').val();

encryptionProcess(user,password).pipe(applyValues).pipe(function(){

console.log("eid"+$('#eid').val());
console.log("pw"+$('#pw').val());
$('form').submit();
});
})

;
function encryptionProcess(user,password){
var d= $.Deferred();
setTimeout(function() {
$.jCryption.encrypt(user, keys, function(encrypted) {
encryptedUser = encrypted;
console.log("printing user encryption:"+encryptedUser);
});
$.jCryption.encrypt(password, keys, function(encryptedPasswd) {
encryptedPassword = encryptedPasswd; /**
* As both userName and password are encrypted now Submit login
*/
console.log("printing password encryption:"+encryptedPassword);
});
d.resolve();
}, 10);
return d.promise();
}
function applyValues(){
var d1= $.Deferred();
setTimeout(function() {
$('#eid').val(encryptedUser);
$('#pw').val(encryptedPassword);
d1.resolve();
}, 10);
return d1.promise();
}

最佳答案

这是因为$('form').submit();。由于您正在调用 jQuery submit()方法,它将调用关联的提交事件处理程序,从而导致递归循环

将其更改为使用 dom 元素的 submit()方法,这不会导致调用提交事件处理程序。

$('form')[0].submit();
//or e.target.submit();

关于java - 递归调用提交时的 JQuery 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24053111/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com