Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript submit()覆盖必填字段_Javascript_Html_Forms - Fatal编程技术网

Javascript submit()覆盖必填字段

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>

我有一个表格,我想一个模态确认前发送。我用JavaScript来实现这一点。我打开模式,在那里我使用
.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不会进行检查。我需要从表单外部进行提交。谢谢