更新表单值并停止提交

时间:2013-05-05 13:07:15

标签: javascript forms

我有一个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这样做)。当我删除I​​F语句然后代码工作正常,但我需要更新一些值(并显示错误,如果是)。

希望你能理解我非常糟糕的英语:)

2 个答案:

答案 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>

然后工作正常。