2014-12-24 2 views
-1

Я ищу способ, чтобы плагин проверки JQuery проверял значение элемента данных выбранного параметра, чтобы определить, является ли выбор действительным или недействительным. Причина, по которой недействительные параметры должны быть включены в выборку, в первую очередь предназначена для показа. т. е. если у меня есть выбор с вопросом «Какой цвет ваш дом?» и у меня есть опции «Красный», «Синий», «Зеленый», конечный пользователь должен быть явно показан, что «Зеленый» не является допустимым выбором.Плагин проверки JQuery, используйте элемент данных опции в качестве проверки для проверки

Прямо сейчас я использую 'validate' для всего остального, но мне пришлось написать отдельную функцию, чтобы проверить эти поля, и я хотел бы иметь возможность сделать это всего лишь с помощью «validate».

Вот более подробный пример того, что я ищу:

HTML:

<html> 
<head> 
<script type="text/javascript" src="./js/jquery-validate-1.11.1.min.js"></script> 
<script type="text/javascript"> 

$(document).ready(function() { 

    // BASIC VALIDATION 
    // Set Validator Defaults and rules 
    $.validator.setDefaults({ 
     errorPlacement: function(error, element) { 
      $(element).attr({"title": error.append()}); 
     }, 
     highlight: function(element){ 
      $(element).addClass("error"); 
     }, 
     unhighlight: function(element){ 
      $(element).removeClass("error"); 
     } 
    }); 
    $("#myform").validate({ 
     rules: { 
      email: { 
       required: true, 
       email: true 
      }, 
      myselect: { 
       // HOW DO I DEFINE THIS RULE SO THAT 
       // IF OPTION 3 IS SELECTED THIS RETURNS 
       // INVALID 
      } 
     } 
    }); 
}); 
</script> 
</head>  
<body> 
<form id='myform' name='myform'> 
    <input type='text' id='email' name='email value='' /> 
    <select id='myselect' name='myselect'> 
     <option id='1' data-is_valid='1'>Option 1</option> 
     <option id='2' data-is_valid='1'>Option 2</option> 
     <option id='3' data-is_valid='0'>Option 3</option> 
     <option id='4' data-is_valid='1'>Option 4</option> 
    </select> 
</form> 
+0

ДАЕТ НИКАКИХ смысл. Просто создайте 'select', чтобы он содержал только действительные параметры. Как правило, самый первый параметр - опция «выбрать» - содержит значение «value =» », которое заставляет пользователя делать выбор, когда действует правило' required'. По какому сценарию любой другой вариант будет недействительным? – Sparky

ответ

0

Вот как я в конечном итоге решить ее: Thankyou к Sparky указал мне в правильном направлении

jQuery.validator.addMethod("valid_option", function(value, element) { 
    if ($(":selected", element).data('is_valid') == "1") { 
     return true; 
    } 
    return false; 
}, "&nbsp&nbspError, Invalid Selection"); 
0

Цитата OP:

«Я должен был написать в отдельную функцию для проверки этих полей, и я хотел бы иметь возможность сделать все это всего лишь с validate ».

Вы могли использовать the .addMethod() method обернуть отдельную функцию и превратить его в правило.


Однако, если вы хотите взять время, чтобы объяснить, почему вы хотите, чтобы ограничить select определенных вариантов, когда вы уже в управлении, как select создаются в первом месте, можно было бы предложить более эффективный ответ или обходное решение. (это один из способов, что SO выгоды все еще долго после того, как ОП выполнено)

+0

Вы правы, мои извинения. Объяснение того, почему мне нужно иметь возможность выбирать недействительные параметры, связано с тем, как моя компания хочет отобразить форму. Это глупо, я знаю, и если бы я сам его строил, я бы просто сделал это так, как вы предлагали. В любом случае я это выяснил и опубликую ответ ниже. Опять Спарки, извините за то, что вы были короткими. – ajax1515

+0

@ ajax1515, Мое голосование заблокировано, пока вы не отредактируете этот вопрос. Возможно, упоминайте, что вы создаете «недействительные» варианты для визуальных/макетов, тогда я смогу удалить свой голос. – Sparky

Смежные вопросы