Javascript函数未触发
我的HTML的Javascript函数未触发,javascript,html,Javascript,Html,我的HTML的头部中有一个JavaScript函数 <script> function validateForm() { var apple = document.getElementById('apple').value; var err = 0; if (isNaN(apple)) { err += 1; } if (err != 0) { alert('Please check your
头部中有一个JavaScript函数
<script>
function validateForm()
{
var apple = document.getElementById('apple').value;
var err = 0;
if (isNaN(apple)) {
err += 1;
}
if (err != 0) {
alert('Please check your input!');
return false;
}
else
return true;
}
</script>
函数validateForm()
{
var apple=document.getElementById('apple').value;
var-err=0;
if(isNaN(苹果)){
误差+=1;
}
如果(错误!=0){
警报('请检查您的输入!');
返回false;
}
其他的
返回true;
}
表格如下:
<form name="orderForm" onSubmit="return validateForm();" method="post">
<div class="input-control text span5">
<input class="span5" type="text" placeholder="Each @ $4.9" id="apple" name="apple" onChange='checkApple(this.value)'>
</div>
</form>
所有括号都已完成,没有打字错误
当我提交带有非数值的表单时,表单仍然会被提交,而不是出错。我可以知道这有什么问题吗?您必须有输入type=“submit”或按钮type=“submit”才能触发onsubmit。您需要接受一个事件:
function validateForm(e) {
并防止:
if (err != 0) {
e.preventDefault()
...
另一方面,我建议您重新构造代码,使其不那么复杂,例如:
var apple = document.getElementById('apple').value;
if (isNaN(apple)) {
...
无需使用err
变量。如果您试图检查输入是否为数字,这可能会起作用:
function validateForm()
{
var apple = document.getElementById('apple').value;
var err = 0;
if (!isNaN(parseFloat(apple)) && isFinite(apple)) {
err += 1;
}
if (err != 0) {
alert('Please check your input!');
return false;
}
else
return true;
}
你试过不使用JavaScript吗
使用
而不是
@Puneet似乎代码在HTML5中,所以没有。如果没有它也提交了。等等什么?从什么时候起,“某个字符串”不是NaN(即数字)?@Kolink(再次)修复