我有一个HTML代码:
<form action="?" id="form1" method="POST" onsubmit="return g.submitForm();">
<input type="text" name="posX" id="formPosX" />
<input type="text" name="posY" id="formPosY" />
<input type="submit" value="Send" />
</form>
和JS代码:
var g = {
submitForm: function () {
var form = document.forms.form1;
if ( form.posX.value > 100 )
{
form.posX.value = 100;
}
return false;
}
}
并且此表单始终在更新值后发送。我的目标是更新错误的值并停止提交表单(我想通过AJAX这样做)。当我删除IF语句然后代码工作正常,但我需要更新一些值(并显示错误,如果是)。
希望你能理解我非常糟糕的英语:)
答案 0 :(得分:0)
您假设表单输入中的值是一个整数,实际上它将被视为字符串数据类型。尝试在应用比较之前将值转换为数字。
if ( parseInt(form.posX.value) > 100 )
{
form.posX.value = "100";
}
我已经调整了你的代码,见下文(你需要包含Jquery库):
JS小提琴 http://jsfiddle.net/boggey79/kN49d/答案 1 :(得分:0)
表单请求已停止,因为onSubmit返回false。你需要返回true。
检查按键事件的输入值:
<script>
function checkPosX(this) {
if ( parseInt(this.value) > 100 ) {
this.value = "100";
}
}
</script>
<form action="?" id="form1" method="POST">
<input type="text" name="posX" id="formPosX" onkeypress="checkPosX(this)" />
<input type="text" name="posY" id="formPosY" />
<input type="submit" value="Send" />
</form>
然后工作正常。