开发者

JQuery validation using is() and multiple CSS classes

Trying to debug something that basically .trim()'s, .val()'s and .length's a textarea input as HTML below (truncated):

<form id="Kontaktanfrage" method="post" action="tests/testform/">
...
<textarea cols="50" row开发者_开发问答s="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";
    }
}

}

The above if check is never true.

Using JQuery: 1.4.1.

Having seen other examples online, I can't see what the difference should be. Feel free to test it in FireBug at (http://www.initiat.de/tests/testform/). Any help appreciated, can't see what I'm doing wrong.


You're creating your selector assuming that all of your fields are Input elements. TextArea is a different element and your selector should reflect that. I don't think that performance will take a big hit if you change this line

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

to this

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


Why not use

.hasClass()


Try with

if ($(element).hasClass('textarea') && $(element).hasClass('required') && fieldLength == 0) {
        fieldError = "error message";
    }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜