Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在jquery中验证select字段?_Jquery_Validation_Select - Fatal编程技术网

如何在jquery中验证select字段?

如何在jquery中验证select字段?,jquery,validation,select,Jquery,Validation,Select,我有以下代码: <form action="" id="credentials" method="post"> <label for="name" id="nameLabel" >Name*:</label> <input type="text" name="name" id="name" value="" /> <select id="single"> <option value="0">Single</op

我有以下代码:

<form action="" id="credentials" method="post">
<label for="name" id="nameLabel" >Name*:</label>
<input type="text" name="name" id="name" value=""  />
<select id="single">
   <option value="0">Single</option>
   <option value="1">Single2</option>
</select>
<input type="submit" value="Submit" name="" data-inline="true"/>
</form>

输入工作正常,但选择不正常。有什么想法吗?这里有一个

问题是
stateField
变量保存字段的实际值。它不是对字段本身的引用,也不是字段的jQuery对象,因此不能说
stateField.css()

试着这样做:

$("#credentials").submit(function(e) {
    var nameField = $("input#name").filter(function() {
        return !$.trim(this.value).length;
    });

    if (nameField.length) {
        nameField.css("border", "1px solid red");
        alert("Name is missing!");

        return false;
    }

    var stateField = $("#single").val();

    if (stateField == 0) {
        stateField.css("border", "1px solid red");
        alert("State is missing!");
        return false;
    }
});
var stateField = $("#single");

if (stateField.val() == 0) {
    stateField.css("border", "1px solid red");
    alert("State is missing!");
    return false;
}
演示的更新版本:


还要注意的是,通过从函数返回,一旦发现错误,验证一次只能报告一个错误(因此除非输入名称,否则不会发生
stateField
验证)。

问题在于
stateField
变量保存字段的实际值。它不是对字段本身的引用,也不是字段的jQuery对象,因此不能说
stateField.css()

试着这样做:

$("#credentials").submit(function(e) {
    var nameField = $("input#name").filter(function() {
        return !$.trim(this.value).length;
    });

    if (nameField.length) {
        nameField.css("border", "1px solid red");
        alert("Name is missing!");

        return false;
    }

    var stateField = $("#single").val();

    if (stateField == 0) {
        stateField.css("border", "1px solid red");
        alert("State is missing!");
        return false;
    }
});
var stateField = $("#single");

if (stateField.val() == 0) {
    stateField.css("border", "1px solid red");
    alert("State is missing!");
    return false;
}
演示的更新版本:

还请注意,通过从函数返回,一旦发现错误,验证一次只会报告一个错误(因此除非输入名称,否则不会发生
stateField
验证)。

更新的JSFIDLE:

stateField仅保存值,而不是实际元素。您需要将css应用于元素

更新的JSFIDLE:

stateField仅保存值,而不是实际元素。您需要将css应用于元素