Проверка JQuery с использованием is () и нескольких классов CSS - PullRequest
0 голосов
/ 30 апреля 2010

Попытка отладить что-то, что, в основном, .trim (), .val () и .length является вводом textarea как HTML ниже (усечено):

<form id="Kontaktanfrage" method="post" action="tests/testform/">
...
<textarea cols="50" rows="8" id="el_12" name="FORM[Kontaktanfrage][el_12]" title="Ihre Nachricht: *" class="textarea required"></textarea>
...
</form>

JavaScript:

function validateField(formId, fieldId) {
if (fieldId) {
    var element = "form#"+formId+" input#"+fieldId;
    var fieldValue = jQuery.trim(jQuery(element).val());
    var fieldLength = fieldValue.length;
    var fieldError = "";
    if ($(element).is('.textarea.required') && fieldLength == 0) {
        fieldError = "error message";
    }
}

}

Вышеупомянутый if чек никогда не будет true.

Использование JQuery: 1.4.1.

Посмотрев другие примеры в Интернете, я не вижу, в чем разница. Не стесняйтесь проверить его в FireBug по адресу (http://www.initiat.de/tests/testform/). Любая помощь приветствуется, не вижу, что я делаю неправильно.

Ответы [ 3 ]

1 голос
/ 30 апреля 2010

Вы создаете свой селектор, предполагая, что все ваши поля являются элементами ввода. TextArea - это другой элемент, и ваш селектор должен отражать это. Я не думаю, что производительность поменяется, если вы измените эту строку

var element = "form#"+formId+" input#"+fieldId;

к этому

var element = "form#"+formId+" #"+fieldId;

1 голос
/ 30 апреля 2010

Почему бы не использовать

.hasClass()
0 голосов
/ 30 апреля 2010

Попробуйте с

if ($(element).hasClass('textarea') && $(element).hasClass('required') && fieldLength == 0) {
        fieldError = "error message";
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...