需要html5和jQuery提交()

需要html5和jQuery提交(),jquery,html,Jquery,Html,我正在尝试将html5实现到表单中,但是当我通过jquery提交表单并尝试使用html5“required”属性时,遇到了一个问题 这是我的表格,非常简单: <form action="index.php" id="loginform"> <input name="username" required placeholder="username" type="text"> <a href="javascript:$('#loginfo

我正在尝试将html5实现到表单中,但是当我通过jquery提交表单并尝试使用html5“required”属性时,遇到了一个问题

这是我的表格,非常简单:

<form action="index.php" id="loginform">
      <input name="username" required placeholder="username" type="text">    
      <a href="javascript:$('#loginform').submit();">Login</a>
</form>

问题是,当表单通过jquery提交时,它只会忽略必需的属性。我知道required应该只在表单由用户提交时才起作用,而不是通过脚本,所以当我将锚更改为submit输入时,它工作得非常完美

我的观点是,是否有办法强制jquery.submit()使用html5必需的atribute


提前感谢您的回答

您可以调用函数,并使用该函数检查是否所有具有必需属性的节点都有值


有一些插件可以实现这一点:

工作演示

希望这将有助于
:)

代码

$('#btn_submit').bind('click', function() {

        $('input:text[required]').parent().show();
        // do whatever;
 });

你说得对。HTML5验证只有在用户触发提交时才有效。事情就是这样(

你需要在提交时编写一个你自己的自定义方法。或者有一个好的插件,你可以使用它根据html5属性验证字段

你可以

  • 在提交时触发
    单击
    事件
  • 使用
    $(“表单”)[0]手动检查验证。checkValidity()
  • 使用
    $(“form:invalid”)

以下是一些如何验证html5的示例:

函数验证表单(表单){
if(form.username.value==''){
警报(“用户名丢失”);
返回false;
}
返回true;
}

.
这里有一件事很奇怪:$(document.forms.loginform).submit();工作正常,但document.forms.loginform.submit()失败。有人能解释一下原因吗?

我做了以下操作

<form>
    ...
    <button type="submit" class="hide"></button>
</form>

<script>
    ...
    $(...).find('[type="submit"]').trigger('click');
    ...
</script>

...
...
$(…).find('[type=“submit”]').trigger('click');
...

“它可以工作!

我也遇到了同样的问题。我有一个按钮故意设置为不提交,因为第一次单击时它显示了一个表单。第二次单击同一个按钮时,$('form[name=xxx')。submit();被触发,我发现HTML5验证也不起作用

我的技巧是添加一行代码,这样在我第一次点击这个按钮后,我就可以将其类型更改为动态提交

$("#btn").attr("type","submit");
这很有魅力!

回答


电子邮件:



这里是我个人解决方案的一个示例:

var form = $('#loginform');

// Trigger HTML5 validity.
var reportValidity = form[0].reportValidity();

// Then submit if form is OK.
if(reportValidity){
    form.submit();
}

我意识到了这一点,我试图同时使用jquery和html5,因为我想成为html5我的主要验证器有一些插件可用。如果你所有的用户都在使用Chrome,你可以使用
checkValidity
方法。-太糟糕了,IE仍然落后。为什么你要使用链接,而不是提交按钮呢?“我的观点是,是否有办法强制使用jqu?”ery.submit()使用html5需要atribute。“。他的表单很可能只是为了说明问题,而不会使问题进一步复杂化。问得好,尝试得好
class=“hide”
style=“display:none”
非常感谢你@iBet7o