javascript - 使用 JQuery 提交表单时检查 HTML 中所需的标记字段
问题描述
我正在使用 Jquery.submit()
函数使用 JQuery 提交我的表单。但是我有一些标记为required
HTML 的字段。.submit()
在提交表单之前,我应该如何使用该功能检查必填字段?
</p>
这是代码
<script>
function submit() {
$("form").submit();
}
function signup() {
alert("You're going to sign up");
}
</script>
<form action="JavaScript:void(0);" onsubmit="signup()" method="post">
<div class="input">
<label for="email">Email:</label>
<input required="" id="email"/>
</div>
<div class="input">
<label for="password">Password:</label>
<input required="" type="password" id="password"/>
</div>
<a class="submit" href="JavaScript:submit();">Sign Up</a>
<button type="submit" class="none_display"></button>
</form>
由于某些浏览器和标签a
的样式发生了变化,我需要使用标签提交我的表单。button
input
解决方案
首先,有点奇怪的是你有一个内联调用的 submit() 方法,它转身提交表单,然后执行它的内联 signup() 方法,然后实际工作。只需调用注册而不是提交()。
但是对于您的实际问题。
$(':input[required]').filter(function(){ return !this.value.trim() })
此命令将查找所有具有所需属性但没有值的输入。如果你发现任何,不要做你的ajax。
下面的示例对逻辑进行了一些重构,以便实际显示提交按钮,但其样式看起来像一个链接。
$('form').on('submit', function(e){
e.preventDefault();
var blankRequiredFieldsExist = $(e.target).find(':input[required]').filter(function(){
return !this.value.trim();
}).length;
if (!blankRequiredFieldsExist) {
alert("You're going to sign up");
}
});
.buttonAsLink {
border: 0;
background-color: inherit;
padding: 0;
font-family: inherit;
font-size: inherit;
color: blue;
text-decoration: underline;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="post">
<div class="input">
<label for="email">Email:</label>
<input required id="email"/>
</div>
<div class="input">
<label for="password">Password:</label>
<input required type="password" id="password"/>
</div>
<button type="submit" class="buttonAsLink">Sign Up</button>
</form>
推荐阅读
- javascript - MapMyIndia 未完全加载,但当我打开开发人员工具(按 f12)时,它正在工作
- dialogflow-es - 是否有任何 API 可以将我的自定义聊天机器人自动化到对话流
- docker - 在本地构建并在创建 docker 镜像时输出到 docker image vs Build
- java - 如何在android上的状态栏上设置数字而不是图标
- logstash-file - 重启logstash之后,sincedb没有被清理(之前运行生成的sincedb)
- javascript - 将来自多个 http.requests 的数组组合成一个数组
- php - 实时服务器上的窗口系统中的新选项卡 pdf 打开问题
- reactjs - 如何添加到 Gatsby 配置文件的链接
- html - 具有相对大小的固定标题
- javascript - 如何使用自定义虚拟键盘模拟真实键盘事件?