我有一个HTML表单和下面的一些JavaScript代码。一切正常。但是令我困扰的是,尽管其他所有功能都在函数中,但是我捕获提交按钮的方式却不在函数中。
那么我这样做正确吗?
我的表单:
<form autocomplete="off" action="/cgi-bin/prl.pl">
<div class="autocomplete" style="width:300px;">
<input id="myInput" type="text" name="myCountry" placeholder="Pick a country" autofocus>
<input id="113" type="submit" value="Ok">
</form>
我的脚本的顶部:
<script>
var form = document.querySelector("form");
form.addEventListener("submit", function(e)
{
//////insert code to validate that
//////specific data is in my form
e.preventDefault();
});
function setFocusToInput()
{
var textbox = document.getElementById("myInput");
textbox.focus();
}
function autocomplete(inp, arr)
{
var currentFocus;
答案 0 :(得分:0)
<form autocomplete="off" action="/cgi-bin/prl.pl" id="my-form">
<div class="autocomplete" style="width:300px;">
<input id="myInput" type="text" name="myCountry" placeholder="Pick a country" autofocus>
<input id="113" type="submit" value="Ok">
</form>
function processForm(e) {
if (e.preventDefault) e.preventDefault();
/* do what you want with the form */
// You must return false to prevent the default form behavior
return false;
}
var form = document.getElementById('my-form');
if (form.attachEvent) {
form.attachEvent("submit", processForm);
} else {
form.addEventListener("submit", processForm);
}
答案 1 :(得分:0)
您的代码没有任何问题,但是,如果您真的想使其成为函数,则可以将onSubmit
添加到<form>
,并编写一个JS函数来对其进行处理。像这样的东西:
HTML:
<form onsubmit="process()">...</form>
JS:
function process() {}
答案 2 :(得分:0)
JavaScript的一致性并没有错,但是如果您喜欢它, 您可以执行以下操作:
function validateForm(ev){
// do some validation
var valid = false;
if (!valid){
ev.preventDefault();
}
}
var form = document.querySelector("form");
form.addEventListener("submit", validateForm);
请注意,附加事件处理程序时没有()