Javascript 使用JQuery提交表单时,选中HTML中所需的标记字段

Javascript 使用JQuery提交表单时,选中HTML中所需的标记字段,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我正在使用Jquery.submit()函数使用Jquery提交表单。但是我有一些字段在HTML中标记为required。 在提交表单之前,我应该如何使用.submit()函数检查必填字段 ‌ 这是密码 <script> function submit() { $("form").submit(); } function signup() { alert("You're going to sign up"); } </script> <form

我正在使用Jquery
.submit()
函数使用Jquery提交表单。但是我有一些字段在HTML中标记为
required
。 在提交表单之前,我应该如何使用
.submit()
函数检查必填字段

这是密码

<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
标记提交我的表单,因为在某些浏览器中,
按钮和
输入标签的样式发生了变化。

首先,有一个submit()方法是有点奇怪的,您可以内联调用它,它会翻转并提交表单,然后执行它的内联注册()然后实际工作的方法。只需调用注册,而不是submit()

但对于你的实际问题

$(':input[required]').filter(function(){ return !this.value.trim() })
此命令将查找具有所需属性但没有值的所有输入。如果你发现了,不要做你的ajax

下面的示例对逻辑进行了一点重构,使submit按钮实际显示出来,但其样式看起来像一个链接

$('form')。关于('submit',函数(e){
e、 预防默认值();
var blankRequiredFieldsExist=$(e.target).find(':input[required]').filter(function(){
return!this.value.trim();
}).长度;
如果(!BlankRequiredField性别歧视){
提醒(“你要注册”);
}
});
.buttonAsLink{
边界:0;
背景色:继承;
填充:0;
字体家族:继承;
字体大小:继承;
颜色:蓝色;
文字装饰:下划线;
}

电邮:
密码:
注册

你有一些不必要的事情要做

表单上不需要
action=“JavaScript:void(0);”

删除

函数注册(){
提醒(“你要注册”);
}

电邮:
密码:
注册

您可以设置提交按钮并设置
显示:无。
然后在jquery中编写一些函数,在用户单击锚链接时单击提交按钮

<form action="JavaScript:void(0);" onsubmit="signup()" method="post">
  <input type="text" required="yes" />
  <input type="submit" style="display: none;" id="mysubmit" />
  <a href="JavaScript:void(0);" onclick='$("#mysubmit").click();'>Submit</a>
</form>


这不是我需要的。重要的是使用
/提交表单。从语义上讲,您不应该使用
进行提交,因为
是链接到某个地方的锚。它应该是一个
(也许你把它设计成一个锚)。而且,在你的问题中,你没有任何地方声明你的要求中最重要的部分是从
提交-所以否决投票有点粗鲁,因为有人看不懂你的想法!我的代码中有链接和按钮标签,并且正在使用
a
标签提交表单。当然,我需要以那种方式提交表格!但无论如何,谢谢你的回答。在这里,你的代码将工作。但是我没有默认的通知用户填写字段的HTML5警报,这并不能阻止HTML5警报。这只是检查是否存在不带值的必填字段。如果有什么东西阻止了HTML5警报,那就是另外一回事了。您正在使用
按钮
标记提交表单。我需要使用
a
标记,因为在某些浏览器中,
按钮
输入
标记的样式发生了变化。然后链接的样式看起来像一个提交按钮。好的,所以保留你得到的,并在第一个代码段中使用选择器。锚不应该用作按钮。锚定是指向页面或页面部分的链接。使用一个按钮,把它设计成一个链接。非常好用,谢谢