Добавление/динамически remving текстовых полей


У меня эта кодировка и я думаю, что это работает. Однако, хотелось бы понять, если есть лучший способ сделать это. Это позволит автоматически создавать новые поля или удалить их на выбранный номер.

<script>
    var OLD_CASE_NUMBER = 1;

    $("#cornercases").ready(function () {
        CORNER_CASE_LOADING();
    });
    $("#cornercases").change(function () {
        CORNER_CASE_LOADING();
    });
    // FUNCTIONLITY TO CREATE THE DOWNDOWN MENUS 
    function CORNER_CASE_LOADING() {
        var topvalue = $('#cornercases').val();
        var counter = 0;
        var newvalue = parseInt(OLD_CASE_NUMBER) + 1;

        // ADD MORE VALUES IN CASE

        if (parseInt(topvalue) == 1 && parseInt(OLD_CASE_NUMBER) == 1)
        {
            var counter = 1;
        var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv' + counter);
            newTextBoxDiv.html('<label>Textbox #'+ counter + ' : </label><input type="text" name="textbox' + counter + '" id="textbox' + counter + '" value="" >');
        newTextBoxDiv.appendTo("#div_selection_section");
        }
        if (newvalue <= topvalue)
        {
            for (counter=newvalue;counter<=topvalue;counter++)
            {
            var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv' + counter);
                newTextBoxDiv.html('<label>Textbox #'+ counter + ' : </label><input type="text" name="textbox' + counter + '" id="textbox' + counter + '" value="" >');
            newTextBoxDiv.appendTo("#div_selection_section");
            }
        }
        else if (parseInt(OLD_CASE_NUMBER) > parseInt(topvalue))
        {
            for (counter=10;counter>topvalue;counter--)
            {
               $("#TextBoxDiv" + counter).remove();
            }
        }
        OLD_CASE_NUMBER = topvalue;
        }
</script>
<select id=cornercases name=cornercases> 
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
</select>
<div id='div_selection_section'></div>


1167
1
задан 11 июля 2011 в 07:07 Источник Поделиться
Комментарии
1 ответ

$(document.createElement('div')). ...

такой же как:

$('<DIV></DIV>'). ....


вы можете просто построить uppon вашего превиус jQuery с заявлениями:

$('<DIV></DIV>')
.attr('id','lol')
.html('hey hey')
.appendTo("#div_selection_section");


$("#cornercases").change(function () {
CORNER_CASE_LOADING();
});

такой же как:

$("#cornercases").change(CORNER_CASE_LOADING);

и вы можете связать 2 события в один с jQuery так:

$("#cornercases").bind("change ready",CORNER_CASE_LOADING)


возможно, вы захотите
topvalue parsInt в соответствии с Тэ ВАР

var topvalue = parseInt($('#cornercases').val());

вам не нужно будет повторять pareInt в каждом "Если" если ты сделаешь это.

Кроме того, я вижу, что
OLD_CASE_NUMBER - целое число (и если вы делаете то, что mesioned выше), вам не придется разбирать что либо


насколько я вижу, во второй строке функции дисп счетчик = 0; бесполезно, потому что везде, где вы используете счетчик вы сначала установить его на что-то другое

3
ответ дан 11 июля 2011 в 07:07 Источник Поделиться