2013-04-02 1 views
3

Я использую fyneworks.com/jquery/star-rating/, чтобы сделать рейтинг на моем сайте. Но у меня есть некоторые проблемы с проверкой с помощью jquery. Я хочу, чтобы пользователь использовал его.Проверка на необходимый элемент, jQuery Star Rating

Я использую это:

$('#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()); 
      }  

    }); 

}); 
+0

Можем ли мы увидеть ваш код? –

+0

Да, мне нужно посмотреть html/js, чтобы помочь вам –

ответ

2

Поскольку рейтинг звезда pluging скрывает входы радио, JQuery Validate игнорирует их по умолчанию. Все вы должны сделать, это добавить ignore:'' в параметры проверки и ваш код будет работать:

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

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

См here для деталей по выбору ignore.

+0

Это работает! Спасибо ... Это пока выглядит не очень красиво, но я над этим работаю. –