javascript 如何使用 jQuery 验证插件检查特定字段是否有效?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30048141/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-28 11:34:02  来源:igfitidea点击:

How to check specific field is valid or not using jQuery validation plugin?

javascriptjqueryjquery-validate

提问by Manan

I am trying to check specific form field is valid or not on button click event but not working.

我正在尝试在按钮单击事件中检查特定表单字段是否有效但不起作用。

I have included this jQuery library:

我已经包含了这个 jQuery 库:

<script type='text/javascript' src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8/jquery.validate.min.js"></script>

and jQuery code:

和 jQuery 代码:

<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){
    $(function () {
        //The client side validations
        var validator = $("#form").validate({
            rules: {
                brokercat: {
                    required: true
                }
            },
            messages: {
                brokercat: {
                    required: "required"
                }
            },
        });
    });

    $(".next").click(function () {
        alert($("#brokercat").valid());
    }); 
});
</script>

HTML Code:

HTML代码:

<form name="form" id="form" action="#">
    <div class="radio">
        <input name="brokercat" id="radiobtn" type="radio" name="radio" value="cat05">
        <label for="radiobtn">
            <p>My business would benefit from having more cash available.</p>
        </label>
        <input name="brokercat" id="radiobtn1" type="radio" name="radio" value="cat04">
        <label for="radiobtn1">
            <p>My business needs to buy a new piece of equipment.</p>
        </label>
        <input name="brokercat" id="radiobtn2" type="radio" name="radio" value="cat02">
        <label for="radiobtn2">
            <p>My business wants to buy the property that it already
                <br/>occupies or is looking to move into. Or, I am looking to buy
                <br/>a business and that includes the premises it occupies.</p>
        </label>
        <input name="brokercat" id="radiobtn3" type="radio" name="radio" value="cat06">
        <label for="radiobtn3">
            <p>I need to acquire a new vehicle for my business.</p>
        </label>
        <input name="brokercat" id="radiobtn4" type="radio" name="radio" value="cat07">
        <label for="radiobtn4">
            <p>I am looking to develop residential or commercial premises.</p>
        </label>
        <input name="brokercat" id="radiobtn5" type="radio" name="radio" value="cat08">
        <label for="radiobtn5">
            <p>I need to borrow for less than 12 months for a property transaction.</p>
        </label>
        <input name="brokercat" id="radiobtn6" type="radio" name="radio" value="cat03">
        <label for="radiobtn6">
            <p>I have outstanding invoices that I would like to use to raise
                <br/>some extra funding.</p>
        </label>
        <input name="brokercat" id="radiobtn7" type="radio" name="radio" value="cat09">
        <label for="radiobtn7">
            <p>I/we have a pension fund that we would like to consider
                <br/>using to raise some capital.</p>
        </label>
        <input name="brokercat" id="radiobtn8" type="radio" name="radio" value="cat01">
        <label for="radiobtn8">
            <p>I am looking to buy a property as an investment and to rent
                <br/>it out.</p>
        </label>
        <input name="brokercat" id="radiobtn9" type="radio" name="radio" value="cat10">
        <label for="radiobtn9">
            <p>My business is looking to help with its overseas trading and
                <br/>exporting.</p>
        </label>
        <input type="button" class="next" value="Next" />
    </div>
</form>

I am getting this error:

我收到此错误:

enter image description here

在此处输入图片说明

Any idea why it is not working.

知道为什么它不起作用。

Thanks.

谢谢。

采纳答案by Shaunak D

There is no element in your code with ID as brokercat, #brokercatis an ID based selector. It is the nameattribute.

您的代码中没有 ID 为 的元素brokercat,它#brokercat是基于 ID 的选择器。它是name属性。

Use

利用

$("[name='brokercat']").valid()  //returns 0 or 1


$(".next").click(function () {
    alert($("[name='brokercat']").valid());
}); 

Demo

演示

*Note : Make sure you include both jQuery and jQuery.validate.js references which are compatible.

*注意:确保包含兼容的 jQuery 和 jQuery.validate.js 引用。

回答by vinayakj

You are using the nameproperty twice on same element. Change below

name在同一元素上两次使用该属性。下面更改

<input name="brokercat" id="radiobtn" type="radio" name="radio" value="cat05">

<input name="brokercat" id="radiobtn" type="radio" name="radio" value="cat05">

to

<input name="brokercat" id="radiobtn" type="radio" value="cat05">

<input name="brokercat" id="radiobtn" type="radio" value="cat05">