我有一个表单,我想验证,然后如果有效,运行JavaScript函数。对于这一点,我有:HTML5 type =按钮有效,type = submit not?
function updateMap() {
//dummy
}
<form>
<div class="group">
<input type="number" id="hour" min="0" max="23" required>
<span class="highlight"></span>
<span class="bar"></span>
<label>Hour of the day (0-23)</label>
</div>
<div class="group">
<select class="weekselection" id="weekday" required>
<option value="" disabled selected>Choose the weekday</option>
\t \t \t <option value="0">Monday</option>
\t \t \t <option value="1">Tuesday</option>
\t \t \t <option value="2">Wednesday</option>
\t \t \t <option value="3">Thursday</option>
\t \t \t <option value="4">Friday</option>
\t \t \t <option value="5">Saturday</option>
\t \t \t <option value="6">Sunday</option>
\t \t </select>
</div>
<div class="group">
<select class="methodelection" id="normalization" required>
\t \t \t <option value="" disabled selected>Choose data handling</option>
\t \t \t <option value="0">Normalized data</option>
\t \t \t <option value="1">Unnormalized data</option>
\t \t \t <option hidden value="2">Normalization not needed in baseline</option>
\t \t </select>
</div>
<div class="group">
<select class="methodelection" id="method" onchange="setNormSelection()">
\t \t \t <option value="" disabled selected>Choose the method</option>
\t \t \t <option value="0">Baseline (daily/hourly mean)</option>
\t \t \t <option value="1">SGD Regressor</option>
\t \t \t <option value="2">Decision Tree</option>
\t \t \t <option value="3">Neural Network - Multi-Layer Perceptron</option>
\t \t </select>
</div>
<button type=button onClick="updateMap()">Show prediction!</button>
</form>
这工作,但我想真正把该领域的有效性。如果在这段代码中,我正在练习<button type=submit onSubmit="updateMap()">Show prediction!</button>
,验证工作正常,但如果填充字段,则updateMap()
函数不会被调用,页面只会闪烁,就好像它已更新为默认值一样。我错过了什么?
如果你的事件处理程序没有做任何事情来阻止“提交”按钮的天然浏览器行为,表单将被提交。 – Pointy
好的,我的主要目标是获得与'onclick = updateMap()'相同的功能,但是需要HTML5表单验证。我该怎么办? –