Javascript submit()覆盖必填字段
我有一个表格,我想一个模态确认前发送。我用JavaScript来实现这一点。我打开模式,在那里我使用Javascript submit()覆盖必填字段,javascript,html,forms,Javascript,Html,Forms,我有一个表格,我想一个模态确认前发送。我用JavaScript来实现这一点。我打开模式,在那里我使用.submit()函数,但它发送表单时不考虑“必需”字段 下面是我用制作的一个示例: <!DOCTYPE html> <html> <body> <form id="some" action="demo_form.asp"> Username: <input type="text" name="usrname" required>
.submit()
函数,但它发送表单时不考虑“必需”字段
下面是我用制作的一个示例:
<!DOCTYPE html>
<html>
<body>
<form id="some" action="demo_form.asp">
Username: <input type="text" name="usrname" required>
<input type="submit">
</form>
<p><strong>Note:</strong> The required attribute of the input tag is not supported in Internet Explorer 9 and earlier versions, or in Safari.</p>
<button type="button" onclick="document.getElementById('some').submit();">Send anyway</button>
</body>
</html>
用户名:
注意:Internet Explorer 9和早期版本或Safari不支持输入标记的必需属性
不管怎样,还是发送
这是小提琴:
我想要的是
required
属性的相同效果,无论是直接发送表单还是通过JavaScript发送表单。将按钮放入表单本身,不需要JavaScript
<!DOCTYPE html>
<html>
<body>
<form id="some" action="demo_form.asp">
Username: <input type="text" name="usrname" required>
<p><strong>Note:</strong> The required attribute of the input tag is not supported in Internet Explorer 9 and earlier versions, or in Safari.</p>
<input type="submit" value="Send">
</form>
</body>
</html>
用户名:
注意:Internet Explorer 9和早期版本或Safari不支持输入标记的必需属性
您应该在表单中使用input type=“submit”
,而不是在表单外部为其创建按钮。.submit()
不会检查必需的HTML属性。通过使用JavaScript模拟单击事件,可以实现类似的效果:
document.getElementById('btn').click();
触发表单提交按钮点击:
var form = document.getElementById('form');
var submitButton = document.getElementById('submit-button');
var sendButton = document.getElementById('send-button');
sendButton.addEventListener('click', send);
function send(e) {
submitButton.click();
}
w3c演示程序与您遇到的问题相同。出于某种原因,JavaScript提交绕过了html5 required属性。如果Element.value==''
那么他们没有填写它。也要习惯于用AJAX做任何事情。这只是未来的一个提示。无论哪种方式,您都不应该依赖客户端验证。最好的做法是创建一个自定义的验证函数来调用,或者按照许多人的建议调用submit按钮的click事件,然后确保使用服务器端验证来捕获通过的任何内容。客户端验证可以很容易地绕过。可能是被否决者的重复,介意详细说明为什么这不能回答问题吗?谢谢,这不是我需要的,但你为我指明了正确的方向。我会让你知道它的工作原理。:)回答很好,有类似的问题“.submit()
不会检查所需的HTML属性。”:Source?@Felix我没有源代码,但FF 61不会进行检查。我需要从表单外部进行提交。谢谢