在两个输入字段之间进行Javascript验证,无需单击“保存”按钮

在两个输入字段之间进行Javascript验证,无需单击“保存”按钮,javascript,html,Javascript,Html,我想验证成本和零售,即成本不应大于零售。 这是成本的输入: <label>Cost* : </label> <input type="text" id="cost" name="cost" size="3" required maxlength="5" autocomplete="off" onkeypress="return ev

我想验证成本和零售,即成本不应大于零售。 这是成本的输入:

 <label>Cost* : </label>
 <input type="text" id="cost" name="cost" size="3" required  maxlength="5" autocomplete="off" onkeypress="return event.charCode >= 48 && event.charCode <= 57"></td></tr>
我的比较两个数字的Javascript验证正在工作,但在单击提交按钮时,我希望在用户输入成本和零售并将鼠标悬停在输入之外的任何位置后调用验证函数

它应该在输入成本和零售后自动验证。我应该如何以及在哪里调用我的验证函数

const fields = [$('#cost'), $('#retail_price')];
fields.forEach((field)=>{
    field.addEventListener('blur', _ => {
         if (fields.every(field => field.value !== "")){
              YOUR CHECK FUNCTION!
         }
    })
})

您可以这样做。

您可以在两个
输入
上收听
模糊
事件,因此,只要其中一个按钮失去焦点,您的代码就会执行:

//全局选择输入,以便稍后在代码中引用它们
const cost=document.getElementById(“成本”),
零售=document.getElementById(“零售价格”);
//循环两个输入并指定一个“模糊”事件侦听器
[零售成本].forEach(i=>
//分配侦听器函数
i、 addEventListener(“模糊”,()=>
console.log(
//“+”符号将值转换为整数
+成本价值>=+零售价值
?零售不能小于或等于成本
:“输入正常!”
)
)
);
成本*:
零售*:

请发布你的JS,这可能就是你想要的。。并调用您的验证。我正在使用GetElementById为newcp和newrp变量分配成本和零售值。if(parseInt(newcp)>=parseInt(newrp)){返回确认(“零售不能小于或等于成本”);返回false;}否则{true;}如果JS是您编写的全部,那么它有四个错误:第一个错误是您声明了一个从未使用过的变量。在第2行和第3行中,您试图保护这些值,但错误地使用了左侧/右侧赋值表达式。左变量是右变量值所在的变量。在您的例子中,这意味着成本的价值,例如,转到HTMLNode的价值。第三个是
返回false
永远不会发生,因为您在同一块中返回了之前的内容。第四个是表达式
true
,例如,如果不在前面放置
return
,则该表达式无效。
function itemChange(selectObject){
document.getElementById("cost").value = cost;
document.getElementById("retail_price").value = retail;
if (cost >= retail)
    {
         return confirm("Retail Cannot be less or equal to Cost");
         return false;
    }
    else
    {
        true;
    }
}
const fields = [$('#cost'), $('#retail_price')];
fields.forEach((field)=>{
    field.addEventListener('blur', _ => {
         if (fields.every(field => field.value !== "")){
              YOUR CHECK FUNCTION!
         }
    })
})