2015-03-22 2 views
0

У меня есть форма, в которой в зависимости от значения в поле 'a' добавляется/отключается необязательное поле 'b'.Ext js: отправить отключенные поля как незаполненные

Если данные передаются с a-значением, где b разрешено, база данных также содержит значение для b. Проблема заключается в том, что когда пользователь затем редактирует эту запись, выбирая значение a, где b отключено, я хочу, чтобы submit отправил «пустое» значение (пустую строку), чтобы очистить запись базы данных.

(не делайте, пожалуйста, не утверждают, что базовая программа должна быть достаточно умна, чтобы сбросить значение Ь в этом случае ... так что это вне моего контроля)

Я попытался включить би-поле и установить его до '' перед отправкой, но b-поле еще не отправлено. (с использованием on-beforeaction-submit)

Я даже пытался возиться с другими параметрами (например, originalValue), чтобы убедиться, что b-поле грязно. Я даже тестировал со случайным значением (для вызова setValue), просто чтобы убедиться, что это не «пустое» поведение поля. Но даже при установке «X» значение не отправляется. Ничто не помогает.

Я уверен, что я пропускаю что-то действительно тривиальное, но я не могу понять это. Итак, потратив часы, чтобы узнать, как читать сообщения и тестировать, я отказываюсь и обращаюсь к сообществу.

Thx, C.

form.on('beforeaction', function(form, action) { 
    if (action.type == 'submit') { 
    //clean disabled fields before submitting 
    if (item!='general') { 
     var escid = Ext.getCmp('spcway-' + item + '-form-escid'); 
     if (escid.disabled) {escid.enable(); escid.originalValue='abc'; escid.allowBlank=true; escid.setValue(''); escid.allowBlank=false} 
     if (item!='status') { 
     var escoption = Ext.getCmp('spcway-' + item + '-form-escoption'); 
     if (escoption.disabled) {escoption.enable(); escoption.originalValue='abc'; escoption.setValue('')} 
     } 
    } 
    return true; 
    } 
}); 
+0

Что на ваш вопрос именно? –

+0

Мой вопрос заключается в том, чтобы убедиться, что поля, которые были отключены в момент нажатия кнопки сохранения/отправки, также отключат отключенные поля. Мне удается включить и избавиться от них грязно перед фактическим отправкой вызова. Но это не дает поля. Это похоже на консоль js, которая по-прежнему считает, что эти поля, которые были отключены в начале нажатия кнопки, все равно не нужно отправлять. В данных не появляются поля, независимо от того, что я пытаюсь сделать. Даже установка их на произвольное значение не включается в данные сообщения. –

ответ

0

Установите в поле для READONLY вместо отключена, то она по-прежнему будет опубликован с данными формы, но не будут доступны для редактирования для пользователя.

<label>disabled</label> 
 
    <input type="text" disabled/> 
 
    <label>readonly</label> 
 
    <input type="text" readonly/>

+0

Проблема с readonly в том, что это не так очевидно для использования, он не должен использовать это поле. Но я попробую просто посмотреть, не делает ли это данные на пост –

+0

Я только что протестировал, и поля теперь добавляются к данным для публикации. Мне не очень нравится это по причине, о которой говорилось выше, но пока кто-то не придумает лучшего решения, я буду использовать это и добавить динамическую всплывающую подсказку с полем «Не применимо» или так. –

+0

вы можете изменить css для ввода только для чтения: только для чтения { background-color: gray; } – kurt

Смежные вопросы