Создать строку формы с Dojo - PullRequest
0 голосов
/ 05 октября 2011

Я новичок в Додзё и работаю с чужим кодом. В настоящее время эта функция ищет значение раскрывающегося списка. Основываясь на этом значении, он добавляет на лету еще одно поле формы, чтобы пользователь мог заполнить его. Во всех примерах я видел только функцию создания одного добавленного поля формы. Однако в конкретном случае я хотел бы добавить вторую строку с другим полем формы. Я подумал, что, возможно, повторение строки дважды поможет, но это не так. Есть мысли как это сделать? Заранее спасибо ...

Заявление о переключении:

if (form_row != null)
    dojo.destroy(form_row);
//Add the correct new field to the form.
switch (inquiry.selectedIndex) {
    case place_order:
        html = this.create_form_row(id, "Account Number");
        break;
    case order_status:
        html = this.create_form_row(id, "Order Number");
        break;
    case telalert_signup:
        html = this.create_form_row(id, "Account Number");
        break;
    case invoice_questions:
        html = this.create_form_row(id, "Invoice Number");
        break;
    case new_option:
        html = this.create_form_row(id, "Invoice Number");
        (WANT TO CREATE A SECOND ROW HERE!)
        break;
    default:
}

Вызываемая функция:

create_form_row: function(id, label) {
    //Container
    var a = dojo.create("div", { id: id, className: "question", style: "padding-top:4px;" });
    //Label
    var b = dojo.create("div", { className: "label", innerHTML: label, style: "margin-top:8px;" }, a);
    //Field
    var c = dojo.create("div", { className: "field" });
    var d = dojo.create("span", { className: "full_number_span span" });
    var e = dojo.create("input", { type: "text", className: "textbox acct_num", name: label }, d);
    dojo.place(d, c);
    dojo.place(c, a);
    return a;
}

1 Ответ

0 голосов
/ 06 октября 2011

Если вы попытались

case new_option:
    html = this.create_form_row(id, "Invoice Number");
    html = this.create_form_row(id, "SOMETHING ELSE");
    break;

, это не сработало бы, потому что вы просто переписали бы переменную html и выбросили первую.

Вы можете либо изменить содержимое, чтобы html былпредполагается, что это список узлов, или вы можете попробовать обернуть два узла формы в один

var html = dojo.create('div');
dojo.place(this.create_form_row(...), html);
dojo.place(this.create_form_row(...), html);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...