我有一个 html 表单,我只想从表单外部的按钮提交。我正在使用 javascript 执行一些验证,并且不希望表单提交,除非我的 javascript 函数成功。我发现如果我在表单内有按钮,无论使用 javascript,它都会提交,但如果我在用户按下输入时将它放在表单外,它只会提交表单。如何强制输入执行按钮 javascript 而不是提交?
<form name="form1" action=<?$_SERVER["PHP_SELF"].'?'.$_SERVER["QUERY_STRING"]?> method="post">
<input type="text" maxlength="5" size="5" name="frmZip" value="">
<input type="hidden" name="frmLat" value="200">
<input type="hidden" name="frmLng" value="200">
<input type="submit" disabled="disabled" style="display:none" />
</form>
<button type="button" id="GetCoordinates" onclick="doClick();">Find Stores</button>
编辑:找到我的解决方案。我从
</form>
<button type="button" id="GetCoordinates" onclick="doClick();">Find Stores</button>
至
<input type="button" name="frmSubmit" onclick="doClick();" value="Submit">
</form>
这阻止了按钮提交表单,所以我通过 javascript 在我的 doClick() 中提交了它。
编辑 2:虽然这似乎工作了一段时间,但它已经停止捕捉回车键击。我将按钮更新为:
<input type="submit" name="frmSubmit" onclick="return doClick();" value="Find Stores">
并且总是在 doClick() 中返回 false。这使我可以在一切执行完毕后通过 javascript 提交表单。