Javascript .submit()会覆盖必填字段

时间:2014-08-19 21:43:21

标签: javascript html forms

我有一个表单,我希望在发送之前确认模态。我用JavaScript做到这一点。我打开模态并在那里使用.submit()函数,但它发送的表单不考虑" required"字段。

以下是我使用 http://www.w3schools.com/ 制作的示例:

<!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>

这是小提琴: http://jsfiddle.net/fmpk1h1m/

无论是直接发送表单还是通过JavaScript发送表单,我想要的是required属性的相同效果。

3 个答案:

答案 0 :(得分:4)

触发表单提交按钮点击:

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();
}

<强> http://jsfiddle.net/8rwfspbt/1/

答案 1 :(得分:0)

.submit()无法检查required HTML属性。您可以通过使用JavaScript模拟点击事件来实现类似的功能:

document.getElementById('btn').click();

JSFiddle

答案 2 :(得分:-2)

将按钮放入表单中,不需要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>

您应该在表单中使用input type="submit",而不是在表单外面创建一个按钮。