2016-12-13 2 views
1

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

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'. 
] 
+2

Я подозреваю, что вы ожидаете AJAX запросы волшебно делать то, что вы хотите. Обратные вызовы элементов формы (обычно) запускаются путем отправки формы. Попробуйте добавить 'html submitButton', чтобы отправить форму и нажать эту кнопку. Однако обратный вызов якоря должен работать из коробки. –

+0

Макс. Ты прав. Это проблема! –

ответ

2

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

Вы можете найти более подробную информацию в приморском книге о написании форм с морем: http://book.seaside.st/book/fundamentals/forms

+0

В этом проблема ... большое спасибо. Rookie ошибка. –

+0

Добро пожаловать. Вы также можете принять ответ;) –

1

Вы должны использовать 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'. 
    ]