Javascript 表单验证,对特定值进行例外

Javascript 表单验证,对特定值进行例外,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我想验证一个特定的表单字段,例如,用户可以输入1到100之间的值;但是如果字段留空,它将自动输入-1 我的代码阻止了-1的提交,因为它似乎不在1和100之间 下面是一个例子: var x = document.getElementById('test').value; if(x !== '') { if (isNaN(x) || x < 1 || x > 100) { feedback = feedback + "Input value must be

我想验证一个特定的表单字段,例如,用户可以输入1到100之间的值;但是如果字段留空,它将自动输入-1

我的代码阻止了-1的提交,因为它似乎不在1和100之间

下面是一个例子:

var x = document.getElementById('test').value;

if(x !== '') {  
    if (isNaN(x) || x < 1 || x > 100) {
        feedback = feedback + "Input value must be between 1 and 100.\n";
    }
}

else {
    document.getElementById('test').value = "-1";
}
var x=document.getElementById('test').value;
如果(x!=''){
如果(isNaN(x)| | x<1 | | x>100){
反馈=反馈+“输入值必须介于1和100之间。\n”;
}
}
否则{
document.getElementById('test')。value=“-1”;
}
提交表格时,我收到上述警报:

输入值必须介于1和100之间

因为它输入-1,并且不会使用该值提交


有办法解决这个问题吗?

在测试正数范围之前,您需要测试特定的情况:

if (isNaN(x) || (x != -1 && (x < 1 || x > 100))) {
if(isNaN(x)| |(x!=-1&&(x<1 | | x>100))){

我认为您使用的if语句只是设置
document.getElementById('test').value=“-1”
if
x!='

这意味着,如果x变量是一个数字,它永远不会被设置为-1

我还要在第二个if语句中设置值,如下所示

var x = document.getElementById('test').value;

        if(x !== '') {

            if (isNaN(x) || x < 1 || x > 100) {
                feedback = feedback + "Input value must be between 1 and 100.\n";
                document.getElement('test').value = -1;

            }
        }

        else {
            document.getElementById('test').value = "-1";
        }
var x=document.getElementById('test').value;
如果(x!=''){
如果(isNaN(x)| | x<1 | | x>100){
反馈=反馈+“输入值必须介于1和100之间。\n”;
document.getElement('test')。值=-1;
}
}
否则{
document.getElementById('test')。value=“-1”;
}

感谢您的快速回复!if语句仅将值设置为“-1”if
x!='
(即用户将字段留空)但是,表单不会使用值-1提交,因为它不在1-100范围内。有没有办法让它可以使用-1作为输入提交?谢谢,这正是我想要的!:)