javascript - 如何使弹出窗口仅在实际提交表单时调用javascript
问题描述
我有以下表格:
<form action="/signup" method="post" class="register-form">
<div>
<div class="form-element">
<label class="form-label" for="name">Name</label>
<input class="form-input-text" type="text" name="name" value="" required>
</div>
<div class="form-element">
<label class="form-label" for="email">E-Mail</label>
<input class="form-input-text" type="email" autocomplete="email" name="email" value="" required>
</div>
<button class="form-button" type="submit" name="submit">Register</button>
</div>
</form>
我建立了一个小弹出窗口,表示感谢您在用户输入他的数据后进行注册。但是,目前我遇到的问题是,当用户在未输入任何数据的情况下单击注册按钮时也会出现此问题(这意味着由于字段中的必需标签,请求不会触发)。如何使弹出窗口仅在实际提交表单时出现?
弹出窗口的 Jquery:
$(window).load(function() {
$(".form-button").click(function() {
$('.popup').show();
});
});
解决方案
只需ids
在每个字段上定义input
以验证两个字段是否都具有价值。这样做
<form action="/signup" method="post" class="register-form">
<div>
<div class="form-element">
<label class="form-label" for="name">Name</label>
<input class="form-input-text" type="text" name="name" value="" id="text1">
</div>
<div class="form-element">
<label class="form-label" for="email">E-Mail</label>
<input class="form-input-text" type="email" autocomplete="email" name="email" value="" id="text2">
</div>
<button class="form-button" type="submit" name="submit">Register</button>
</div>
</form>
$(window).load(function() {
$(".form-button").click(function() {
let input1 = $('#text1').val();
let input2 = $('#input2').val();
if(input1 && input2){
//make your http req and then after getting your response open your popup
$('.popup').show();
}
});
});
推荐阅读
- python - 使用 Tkinter 单击按钮后更改文本
- javascript - 在 Stripe 中添加持卡人姓名
- android - 如果键盘颤动如何更改语言
- django - Django Core Pagination 的效率如何?
- python - 如何用它的 ID 找到一个服务器,然后用 discord.py 找到它的所有者
- reactjs - 从自定义钩子返回 JSX
- python - 为什么我的代码(应该放在列标题中)将整个 Excel 工作表擦除为空白而没有标题?
- html - 在 h 标签或 p 标签中间设置文本样式的最佳方法是什么?
- python - 列出 Flask Cache 中所有缓存的键
- python - 仅使用数据集的第一个样本进行训练的模型