如果从选择框中未选择任何值(除标题之外),则返回false

Par*_*hav 5 html javascript validation jquery

我有一个带有选择框的HTML表单.在选择第一个下拉列表时,下一个下拉列表应该使用AJAX自动填充.

在此输入图像描述

Download Records (id="getCsv")按钮单击事件上,将生成CSV文件.问题是,我想强制所有字段.这是jquery代码

var teacher_name = $("#sel_teacher option:selected").text();
var unittest_name = $("#sel_test1 option:selected").text();

var class_name = $("#sel_class1 option:selected").text();
var class_id = $('#sel_class1').val();

var division_name = $("#sel_div1 option:selected").text();
var division_id = $('#sel_div1').val();

var subject_name = $("#sel_sub1 option:selected").text();

if (teacher_name == "") {
    alert('Please Select Teacher Name.');
    return false;
} else if(class_name == "") {
    alert('Please Select Class Name.');
    return false;
} else if(division_name == "") {
    alert('Please Select Division Name.');
    return false;
} else if(subject_name == "") {
    alert('Please Select Subject Name.');
    return false;
} else if(unittest_name == "") {
    alert('Please Select Unit Test Name.');
    return false;
} else {
    var myObject = new Object();
    myObject.class_name = class_name;
    myObject.class_id = class_id;
    myObject.division_name = division_name;
    myObject.division_id = division_id;
    myObject.subject_name = subject_name;
    myObject.test_name = unittest_name;

    var formData = JSON.stringify(myObject);
    $('#getCsv').attr('href','csv_generator.php?data=' + formData);
}
Run Code Online (Sandbox Code Playgroud)

问题是当我点击时Download Records,即使第一个选择框是空的,也会弹出第二个选择框的警告框.我尝试用下面的方法解决这个问题,但没有运气.

if ($("#sel_teacher").attr("selectedIndex") == 0) {
   alert("You haven't selected anything!");
   return false;
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?任何帮助表示赞赏.

Ror*_*san 3

selectedIndex是一个属性,使用prop

$("#sel_teacher").prop("selectedIndex")
Run Code Online (Sandbox Code Playgroud)

此外,您可以通过仅使用检索所选值$("#sel_teacher").val()并与空字符串进行比较来简化代码(假设value该选项的 为空)。

var teacher_name = $("#sel_teacher").val();
// get other <select /> values here...

if (teacher_name == '') {
   alert("You haven't selected anything!");
   return false;
}

// test other values here...
Run Code Online (Sandbox Code Playgroud)