2016-12-13 15 views
1

私は基本的なWebアプリケーション(海辺で始まる)を書いていますが、コールバックは決して実行されません。コールバックが実行されないのはなぜですか?

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

フォーム内のアンカーはフォームを送信せず、送信ボタンのみがフォームを送信します。これはSeasideではなくHTMLで定義されています。

あなたはシーサイドでのフォームを書き込んで海辺の本の中でより多くの情報を見つけることができます:あなたが代わりにanchorや他のbuttonsubmitButtonを使用する必要がありますhttp://book.seaside.st/book/fundamentals/forms

+0

それは問題です...非常にありがとうございます。 ルーキーエラーです。 –

+0

あなたは大歓迎です。あなたも答えを受け入れることができます;) –

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. 
    "Use a submitButton instead of a regular anchor/button" 
    html submitButton 
    callback: [ mmpiItems setAnswer: (self option) ]; 
    with: 'Next'. 
    ] 
関連する問題