gpt4 book ai didi

javascript - POST Ajax 用于一种表单中的多个按钮

转载 作者:行者123 更新时间:2023-12-02 22:34:33 25 4
gpt4 key购买 nike

我正在创建一个具有 AuthLogin 按钮的表单,计划分别在下面处理发送 OTP 和检查 OTP 是否有效。

我正在关注这个Process a Form Submit with Multiple Submit Buttons in Javascript使用下面的代码,但是当我得到任何按钮时,javascript似乎不起作用,并且我无法获取任何 console.log 值。浏览器上没有错误。

otplogin.html

    <div id="otplogin">
<form class="form-horizontal" id="getotp" >
{% csrf_token %}
<div class="control-group">
<label class="control-label" for="username">Username</label>
<div class="controls">
<input type="text" id="username" name="username" placeholder="Username">
</div>
</div>
<div class="control-group">
<div class="controls">
<button type="submit" value='auth' class="btn">Auth</button>
</div>
</div>
<div class="control-group">
<label class="control-label" for="otp">OTP</label>
<div class="controls">
<input type="otp" name="otp" id="otp" placeholder="OTP">
</div>
</div>
<div class="control-group">
<div class="controls">
<button type="submit" value='login' class="btn">Login</button>
</div>
</div>
</form>
</div>
<script type="text/javascript">
(function () { //the browser said the '$' as in the linked answer can not be recognized
$("#getotp btn").click(function (ev) {
ev.preventDefault()
if ($(this).attr("value") == "auth") {
console.log("CHECK 1");
$.ajax({
type:'POST',
url:'/getotp2',
data:{
username:$('#username').val()
,csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val()
},
success: function server_response(response) {
console.log('POST1 success')
}
});
}
else if ($(this).attr("value") == "login") {
console.log("CHECK 2");
$.ajax({
type:'POST',
url:'/otplogin',
data:{
username:$('#username').val(),
otp:$('#otp').val(),
csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val()
},
success: function server_response(response) {
console.log('POST2 success')
}
});
}
});
});

</script>

View .py

def otplogin(request):
if request.POST:
otpentered=request.POST.get('otp','')
if otpentered==otp:
return redirect('/main')
return render(request,'esearch/otplogin.html')

def getotp2(request):
logout(request)
username = otp = ''
if request.POST:
username = request.POST.get('username','')
otp = pyotp.TOTP('base32secret3232').now()
OTPEmail('You Auth',username,[],'Your auth is '+otp)
print ('POST'+username)
print ('POST'+otp)
return JsonResponse(json.dumps({'username':username,'otp':otp}),safe=False)

感谢对此的任何帮助

最佳答案

您的选择是错误的:

(function(){
$("#getotp btn").click(function (ev){...});}

更改为:

$(document).ready(function(){
$(".btn").click(function(ev){...});});

或者

$("#getotp .control-group .controls .btn").click(...

关于javascript - POST Ajax 用于一种表单中的多个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58779720/

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