用于输入检查的 JavaScript 函数不起作用

javascript function for input check not working

本文关键字:函数 不起作用 JavaScript 输入 检查 用于      更新时间:2023-09-26

我有javascript函数,它正在检查某些输入字段是否为空或选中某些复选框等。

function empty() {
//NAME CHECK
var x;
x = document.getElementById("required").value;
if (x == "") {
    alert("Name is empty!");
    return false;
};
//CATEGORY CHECK
var selectedCat = document.getElementById('parent_cat');
if (selectedCat.selectedIndex.value != null) {
    alert("please, select category!");
    return false;
};
//price check
var priceBG;
priceBG = document.getElementById("requiredPriceBG").value;
if (priceBG == "") {
    alert("BG price is sempty!");
    return false;
};
var priceEN;
priceEN = document.getElementById("requiredPriceEN").value;
if (priceEN == "") {
    alert("En price is empty!");
    return false;
};
//Checkboxes check
var checkboxs = document.getElementsByName("amentities");
var okay = false;
for(var i = 0, l = checkboxs.length; i < l; i++){
    if(checkboxs[i].checked){
        okay = true;
        break;
    };
};
if(!okay){
    alert("At least one checkbox should be checked!");
    return false;
};
};

第一次检查(名称检查)后没有任何工作。名称检查有效,然后提交表单,而不考虑其他检查。
据我所知,html代码是正确的,并且没有重复的ID。
可能是什么问题,有没有办法优化功能?

以下是对代码的更正:

代码笔链接

正如Ursus所说,它被选中了Cat.value。这是你的代码:

function empty() {
//NAME CHECK
var x;
x = document.getElementById("required").value;
if (x == "") {
    alert("Name is empty!");
    return false;
};
//CATEGORY CHECK
var selectedCat = document.getElementById('parent_cat');
if (selectedCat.value != null && selectedCat.value == "") {
    alert("please, select category!");
    return false;
};
//price check
var priceBG;
priceBG = document.getElementById("requiredPriceBG").value;
if (priceBG == "") {
    alert("BG price is sempty!");
    return false;
};
var priceEN;
priceEN = document.getElementById("requiredPriceEN").value;
if (priceEN == "") {
    alert("En price is empty!");
    return false;
};
//Checkboxes check
var checkboxs = document.getElementsByName("amentities");
var okay = false;
for(var i = 0, l = checkboxs.length; i < l; i++){
    if(checkboxs[i].checked){
        okay = true;
        break;
    };
};
if(!okay){
    alert("At least one checkbox should be checked!");
    return false;
};
};

selectedCat.selectedIndex.value不应该selectedCat.value?另外,请检查控制台中是否有一些错误。