使用锚点作为提交按钮会导致模式属性无法验证
Using anchor as submit button causes pattern property not to be validated
我有一个表单,它使用了一个锚作为提交按钮,如下所示:
<!DOCTYPE html>
<head>
<script src="jquery.js"></script>
</head>
<body>
<form action="" method="post">
<input type="text" pattern="[A-Za-z]{3}" />
<a href="#" class="submit">Submit</a>
<input type="submit" />
</form>
<script>
$(".submit").click( function(e) {
var form = $(this).parents('form:first');
form.submit();
//e.preventDefault();
});
</script>
</body>
</html>
当我单击提交按钮时,我会看到一条消息,告诉我验证失败。当我单击提交锚点时,表单将被提交。使用锚点作为提交按钮时,如何触发验证?
我可以做到:
<form action="" method="post">
<input type="text" pattern="[A-Za-z]{3}" />
<a href="#" class="submit">Submit</a>
<input style="display: none" id="i_submit" type="submit" />
</form>
//snip
<script>
$(".submit").click( function(e) {
$("#i_submit").click();
});
</script>
它确实验证了表单,阻止了提交,并在输入字段周围画了一个红色边框,但它不会像点击真正的提交按钮时那样显示任何类型的错误消息。
我如何让错误消息弹出,就像点击了真正的提交按钮一样?
使用jQuery,您只能这样做:
<form action="" method="post" id="form1">
<input type="text" pattern="[A-Za-z]{3}" />
<a href="#" class="submit">Submit</a>
<input style="display: none" id="i_submit" type="submit" />
</form>
$(".submit").click(function(e){
e.preventDefault();
if(validate()) // function that validates your form (returns true or false)
{
$("#form1").submit();
}
});
如果您想使用超级链接作为提交按钮,可以使用以下格式来触发该函数。
提交
您也可以访问此处:HTML标记<a>想要添加href和onclick工作
相关文章:
- 数据属性仅在切换设备模式下工作
- PhoneGap 2.0(Cordova)DatePicker插件'模式'-属性以获取日期和时间
- 如何在javascript对象中设置属性的类型,就像mongoose模式设计一样
- 为什么在原型中定义属性被视为反模式
- 为什么除了html5输入模式属性之外,这个简单的regex在任何地方都能工作
- 输入元素模式属性的Javascript正则表达式在reFiddle上有效,但在页面上无效
- 对象绑定模式的rest属性应该是最后一个
- JS:两个或多个非严格模式下具有相同名称的对象属性
- 从引导模式窗口中删除模式属性
- 为什么输入模式属性不适用于数字
- 如何在文本框上使用模式属性
- 如何使用HTML5使用模式属性仅验证CSV文件上传
- 输入元素模式属性的行为不象regex
- 输入模式属性以更改输入框的颜色
- 如何在Mongoose中将模式属性设置为SubDocument类型
- 适当模拟“模式”属性
- 使用锚点作为提交按钮会导致模式属性无法验证
- 切换对话框的“模式”属性打开时
- 使用websockets激活HTML5模式属性
- Angular中的模式属性(硬编码版本可以,动态版本不行)