validate .js не работает над списком выбора [дубликат]

Порядок, в котором указаны взаимозависимые связанные библиотеки, неверен.

Порядок, в котором связаны библиотеки, имеет значение, если библиотеки зависят друг от друга. В общем случае, если библиотека A зависит от библиотеки B, тогда libA ДОЛЖЕН появляться перед libB в флагах компоновщика.

Например:

// B.h
#ifndef B_H
#define B_H

struct B {
    B(int);
    int x;
};

#endif

// B.cpp
#include "B.h"
B::B(int xx) : x(xx) {}

// A.h
#include "B.h"

struct A {
    A(int x);
    B b;
};

// A.cpp
#include "A.h"

A::A(int x) : b(x) {}

// main.cpp
#include "A.h"

int main() {
    A a(5);
    return 0;
};

Создайте библиотеки:

$ g++ -c A.cpp
$ g++ -c B.cpp
$ ar rvs libA.a A.o 
ar: creating libA.a
a - A.o
$ ar rvs libB.a B.o 
ar: creating libB.a
a - B.o

Скомпилируйте:

$ g++ main.cpp -L. -lB -lA
./libA.a(A.o): In function `A::A(int)':
A.cpp:(.text+0x1c): undefined reference to `B::B(int)'
collect2: error: ld returned 1 exit status
$ g++ main.cpp -L. -lA -lB
$ ./a.out

Чтобы повторить снова, порядок имеет значение!

14
задан Tom 6 September 2013 в 20:26
поделиться

5 ответов

Поскольку вы не можете установить value="" в свой первый option, вам нужно создать свое собственное правило, используя встроенный метод addMethod() .

jQuery:

$(document).ready(function () {

    $('#myform').validate({ // initialize the plugin
        rules: {
            year: {
                selectcheck: true
            }
        }
    });

    jQuery.validator.addMethod('selectcheck', function (value) {
        return (value != '0');
    }, "year required");

});

HTML:

<select name="year">
    <option value="0">Year</option>
    <option value="1">1955</option>
    <option value="2">1956</option>
</select>

Рабочая демонстрация: http://jsfiddle.net/tPRNd/


Исходный ответ: (Только если вы можете установить value="" в течение первого option)

Чтобы правильно проверить элемент select с плагином jQuery Validate, просто требуется, чтобы первый option содержит value="". Поэтому удалите 0 из value="0" и он исправлен.

jQuery:

$(document).ready(function () {

    $('#myform').validate({ // initialize the plugin
        rules: {
            year: {
                required: true,
            }
        }
    });

});

HTML:

<select name="year">
    <option value="">Year</option>
    <option value="1">1955</option>
    <option value="2">1956</option>
</select>

Демонстрация: http://jsfiddle.net/XGtEr/

41
ответ дан Sparky 27 August 2018 в 00:24
поделиться

JQuery Select Box Validation. Вы можете оповещать сообщение через оповещение или поместить сообщение в Div согласно вашим требованиям.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="message"></div>
<form method="post">
<select name="year"  id="year">
    <option value="0">Year</option>
    <option value="1">1919</option>
    <option value="2">1920</option>
    <option value="3">1921</option>
    <option value="4">1922</option>
</select>
<button id="clickme">Click</button>
</form>
<script>
$("#clickme").click(function(){

if( $("#year option:selected").val()=='0'){

alert("Please select one option at least");

  $("#message").html("Select At least one option");

}


});

</script>

1
ответ дан Anil chhabra 27 August 2018 в 00:24
поделиться

http://docs.jquery.com/Plugins/Validation/Methods/required

отредактируйте код для 'select', как показано ниже, для проверки на 0 или null выбор значения из списка выбора

case 'select':
var options = $("option:selected", element);
return (options[0].value != 0 && options.length > 0 && options[0].value != '') && (element.type == "select-multiple" || ($.browser.msie && !(options[0].attributes['value'].specified) ? options[0].text : options[0].value).length > 0);
1
ответ дан Dementic 27 August 2018 в 00:24
поделиться

Чтобы установить правило выбора в списке выбора, вам просто нужно вариант с пустым значением

<option value="">Year</option>

, поэтому достаточно применить требуемое само по себе

<script>
    $(function () {
        $("form").validate();
    });
</script>

с формой

<form>
<select name="year" id="year" class="required">
    <option value="">Year</option>
    <option value="1">1919</option>
    <option value="2">1920</option>
    <option value="3">1921</option>
    <option value="4">1922</option>
</select>
<input type="submit" />
</form>

скрипт здесь

9
ответ дан Dr Blowhard 27 August 2018 в 00:24
поделиться

немного упростите все это, исправьте некоторые проблемы запятыми, которые взорвут некоторые браузеры:

  $(document).ready(function () {
       $("#register").validate({
           debug: true,
           rules: {
               year: {
                   required: function () {
                       return ($("#year option:selected").val() == "0");
                   }
               }
           },
           messages: {
               year: "Year Required"
           }
       });
   });

Прыгая к предположению, если ваш выбор не имеет этого атрибута validate="required:true"?

0
ответ дан Mark Schultheiss 27 August 2018 в 00:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: