Почему обратный вызов не выполняется?

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

renderContentOn: html

  | group |
  html form: [

    html text: 'Gender: '.
    group := html radioGroup.
    group radioButton
        selected: self contact isMale;
        callback: [ self contact beMale ].
    html text: 'Male'.
    group radioButton
        selected: self contact isFemale;
        callback: [ self contact beFemale ].
    html text: 'Female'.
    html break.

    html anchor
    callback: [ mmpiItems setAnswer: (self option) ];
    with: 'Next'.
 ]

person The Ghost Out Of The Machine    schedule 13.12.2016    source источник
comment
Я подозреваю, что вы ожидаете, что запросы AJAX волшебным образом сделают то, что вы хотите. Обратные вызовы элементов формы (обычно) запускаются при отправке формы. Попробуйте добавить html submitButton для отправки формы и нажмите эту кнопку. Однако обратный вызов якоря должен работать из коробки.   -  person Max Leske    schedule 13.12.2016
comment
Максимум. Ты прав. Это проблема!   -  person The Ghost Out Of The Machine    schedule 13.12.2016


Ответы (2)


Якорь внутри формы не отправляет форму, это делает только кнопка отправки. Это определяется не Seaside, а HTML.

Дополнительную информацию о формах написания с помощью Seaside можно найти в книге Seaside: http://book.seaside.st/book/fundamentals/forms

person Johan B    schedule 13.12.2016
comment
Вот в чем проблема... большое спасибо. Ошибка новичка. - person The Ghost Out Of The Machine; 13.12.2016
comment
Добро пожаловать. Вы также можете принять ответ;) - person Johan B; 14.12.2016

Вы должны использовать submitButton вместо anchor или любого другого button.

Ваш код будет выглядеть так:

renderContentOn: html

 | group |
 html form: [
   html text: 'Gender: '.
   group := html radioGroup.
   group radioButton
     selected: self contact isMale;
     callback: [ self contact beMale ].
   html text: 'Male'.
   group radioButton
     selected: self contact isFemale;
     callback: [ self contact beFemale ].
   html text: 'Female'.
   html break.
   "Use a submitButton instead of a regular anchor/button"
   html submitButton
     callback: [ mmpiItems setAnswer: (self option) ];
     with: 'Next'.
   ]
person Esteban A. Maringolo    schedule 14.12.2016