0

我有一个 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 语句时,代码可以正常工作,但我需要更新一些值(如果是,还显示错误)。

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

4

2 回答 2

0

您假设表单输入中的值是整数,而实际上它将被视为字符串数据类型。在应用比较之前尝试将该值转换为数字。

    if ( parseInt(form.posX.value) > 100 )
    {
        form.posX.value = "100";
    }

我已经修改了您的代码,如下所示(您需要包含 Jquery 库):

JS 小提琴 http://jsfiddle.net/boggey79/kN49d/

于 2013-05-05T13:22:32.100 回答
0

表单请求已停止,因为 onSubmit 返回 false。你需要返回真。

检查按键事件的输入值:

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

然后工作正常。

于 2013-05-05T13:40:20.343 回答