Если постановка задачи в jQuery - PullRequest
0 голосов
/ 20 июля 2011

Мой оператор if в jQuery, кажется, нарушает этот код, и я не могу понять, почему :( Вот фрагмент кода:

$(document).ready(function wordCount() //init
{
    $('#text_area').keyup(function () //when you type in the text area
    {
        $('#limit').html($(this).val().split(/\b[\s,\.-:;]*/).length - 1 + ' words'); //count the number of words 
        //and print it out in paragraph #limit 
        //if there are more than 250 words...
        if ($(this).val().split(/\b[\s,\.-:;]*/).length - 1 > 250) {
            //print it out  
            $('#limit').html($(this).val().split(/\b[\s,\.-:;]*/).length - 1 + ' out of 250 words');
            //color it in red
            $('#limit').css("color": "red");
            //disable the submit button.
            $('#submit_button').attr('disabled', 'disabled');
        }
    });
});

Он отлично работает без оператора if. Но как толькокогда я добавляю какое-то условие, оно нарушается и ничего не отображается в # limit.

Спасибо

Ответы [ 2 ]

2 голосов
/ 20 июля 2011

Это разрыв, когда присутствует оператор if, потому что это:

$('#limit').css("color": "red");  // semi-colon is wrong

должно быть:

$('#limit').css("color", "red");  // use a comma instead

Пример: http://jsfiddle.net/H2JWy/

$(document).ready(function wordCount() //init
{
    var limit = $('#limit');
    var submit = $('#submit_button');
    $('#text_area').keyup(function() //when you type in the text area
    {
        var len = $(this).val().split(/\b[\s,\.-:;]*/).length - 1;
        limit.html(len + ' words');
        if (len > 250) {
            limit.html(len + ' out of 250 words').css("color", "red");
            submit.attr('disabled', 'disabled');
        }
    });
});
0 голосов
/ 20 июля 2011

присвойте свою $(this).val().split(/\b[\s,\.-:;]*/).length переменной и используйте ее, если

var length = $(this).val().split(/\b[\s,\.-:;]*/).length ; 

 if ( (length- 1) > 250) {


 }

@ blargie-bla.если вы говорите, что ваш $(this).val().split(/\b[\s,\.-:;]*/).length работает.

ОБНОВЛЕНИЕ

также

$('#limit').css("color": "red");

должно быть

$('#limit').css("color","red");

это должно работать

...