3

我使用fyneworks.com/jquery/star-rating/在我的网站上进行星级评分。但是我在使用 jquery 进行验证时遇到了一些麻烦。我希望用户必须使用它。

我用这个:

  $('#formid').validate({ 
    rules: {
        nameofradiobutton: { required: true }
    }
  });

进行验证,但正常情况 { required: true }下它不起作用。

但我想以类似规则的格式拥有它。

请帮我寻找解决方案很多小时,但我找不到有效的解决方案......

我的收音机 HTML 如下所示:

<input name="star" type="radio" value="1"class="star"/>
<input name="star" type="radio" value="2"class="star"/>
<input name="star" type="radio" value="3"class="star"/>
<input name="star" type="radio" value="4"class="star"/>
<input name="star" type="radio" value="5"class="star"/>

我的实际验证调用如下所示:

$('#starform').validate({ 

        rules: {

        star: {
            required: true,
        },

    },

    messages: {
        star: {
            required: "<br />Please choose a star.",
        },

    },
        errorPlacement: function (error, element) {
         if ( element.is(":checkbox") )
         error.appendTo(element.parent("td").next("td"));
         else if ( element.is(":radio") )
         error.appendTo(element.parent("td").next("td"));
         else
         error.appendTo( element.parent());
        }       

});

我的表格是这样的

<input name="star" type="radio" value="1"class="star"/>
<input name="star" type="radio" value="2"class="star"/>
<input name="star" type="radio" value="3"class="star"/>
<input name="star" type="radio" value="4"class="star"/>
<input name="star" type="radio" value="5"class="star"/>

我的验证是这样的

  $(document).ready(function () {

    $('#starform').validate({ 

            rules: {

            star: {
                required: true,
            },

        },

        messages: {
            star: {
                required: "<br />Please choose a star.",
            },

        },
            errorPlacement: function (error, element) {
             if ( element.is(":checkbox") )
             error.appendTo(element.parent("td").next("td"));
             else if ( element.is(":radio") )
             error.appendTo(element.parent("td").next("td"));
             else
             error.appendTo( element.parent());
            }       

    });

});
4

1 回答 1

2

因为你的星级插件隐藏了无线电输入,jQuery Validate 默认忽略它们。您需要做的就是添加ignore:''到您的验证选项中,您的代码将起作用:

$('#starform').validate({ 
    ignore:'',

    //... the rest of your rules and options to follow
});

有关该选项的详细信息,请参见此处。ignore

于 2013-04-02T21:20:07.063 回答