在jquery中使用条件

时间:2009-11-10 18:38:38

标签: jquery conditional

只是试图在这里收起一些松散的赔率。我有以下代码:

$(function(){
    // start a counter for new row IDs
    // by setting it to the number
    // of existing rows
    var newRowNum = 2;

    var quantity = 1;
    // bind a click event to the "Add" link
    $("a").bind("click", function() {
        // increment the counter
        newRowNum += 1;

        // get the entire "Add" row --
        // "this" refers to the clicked element
        // and "parent" moves the selection up
        // to the parent node in the DOM
        var addRow = $(this).parent().parent();

        // copy the entire row from the DOM
        // with "clone"
        var newRow = addRow.clone();

        // set the values of the inputs
        // in the "Add" row to empty strings
        //$('input', addRow).val('');
        //$('name', addRow).val('os' + newRowNum);

        // replace the HTML for the "Add" link 
        // with the new row number
        $('td:first-child', newRow).html('<input type="hidden" name="on' + newRowNum + '" value="Recipient Address ' + (newRowNum - 1) + '">Recipient');

        // insert a remove link in the last cell
        $('td:last-child', newRow).html('<a href="" class="remove">Remove<\/a>');

        // loop through the inputs in the new row
        // and update the ID and name attributes

        $('input:hidden', newRow).attr('id','on' + newRowNum ).attr('name','on' + newRowNum );
        $('textarea', newRow).attr('id','os' + newRowNum ).attr('name','os' + newRowNum );

        // insert the new row into the table
        // "before" the Add row

        addRow.before(newRow);

        document.tp01.quantity.value = newRowNum-1;
        quantity += 1;
        // add the remove function to the new row
        $('a.remove', newRow).click(function(){
            $(this).parent().parent().remove();
            document.tp01.quantity.value = quantity-1;
            return false;               
        });

        // prevent the default click
        return false;
    });

});

我要做的是在这里使用条件块来测试数量是否为6,如果是,则不允许用户添加新行(电子邮件收件人)。我尝试过以下方法:

    if(quantity < 7) {
        addRow.before(newRow);
        };

测试数量是否小于7(最多6个),然后才允许他们添加新行。这不起作用。 我也尝试过:if(quantity < 6) { quantity += 1; };

测试数量是否小于6,如果是,则在值中加1。否则没什么。这不起作用。

基本上,我需要做的是,每当有人添加一行时,我需要增加数量(它现在正确地执行)但不允许它们添加超过6行(它没有正确执行) 。

一如既往,感谢您的帮助。

戴夫

1 个答案:

答案 0 :(得分:0)

尝试从文档中提取数量。已经。

var quantity = 0;

$(function()...

我的猜测是,当你回到事件处理程序时,数量变量不再在范围内。