2017-03-02 4 views
2

ExtJSの最新ツールキットのフォームコンポーネントに問題があります。 ボタンなしのフォームを作成します(これはsenchaのフィドルでテストできます)。唯一のボタンはタイトルバーにあり、現時点では機能していません。フォームフィールドのページリロードを防止するExtJSの入力を押してください

問題は次のとおりです。Enterキーを押したときにフォームが送信される。私のフォームは空ですが、デフォルトのメソッドはPOSTですが、フォーカスが自分のフィールドにある間にEnterキーを押すとページがリロードされます...ブラウザのURLアドレス文字列はフォームフィールドの名前を補完しますが、フォームのメソッドはPOSTです

Ext.create('Ext.form.Panel', { 
    renderTo: Ext.getBody(), 
    requires: [ 
     'Ext.form.FieldSet', 
     'Ext.field.Text', 
     'Ext.field.TextArea', 
     'Ext.TitleBar' 
    ], 

    items: [{ 
     xtype: 'titlebar', 
     docked: 'top', 
     title: 'Searching', 
     items: [{ 
      iconCls: 'fa fa-search', 
      iconAlign: 'right', 
      text: 'Search', 
      align: 'right', 
      handler: function() { 
       // 
      } 
     }] 
    }, { 
     xtype: 'fieldset', 
     border: false, 
     shadow: 'true', 
     defaults: { 
      value: '' 
     }, 
     items: [ 
      { 
       xtype: 'numberfield', 
       label: 'Some ID', 
       allowBlank: true, 
       name: 'id' 
      }, 
      { 
       xtype: 'textfield', 
       label: 'Some Article', 
       name: 'article' 
      } 
     ] 
    }] 
}); 

ページの再読み込みを防止するにはどうすればよいですか?私は

+0

ExtJSのフォーム決して内線idプロパティでなければならない矛盾していませんこのように振る舞います。確かに、あなたが提供したコードに問題はありません。それは大丈夫です。 'handler'関数はどのように見えますか?あなたはフィドルへのリンクを提供できますか? –

+0

別のポイント:フォームの送信メソッドがPOSTであるとします。あなたのコードはこれを表示しませんが、ExtJsのデフォルトの提出はajaxによるものです。 –

+0

@LorenzMeyer Ok https://fiddle.sencha.com/#fiddle/1rf2 - フォーカスをテキストフィールドに設定し、Enterキーを押します。私はページを再ロードしてはならないと思います...そうですか? –

答えて

2

ちょうどフィールド名でIdである可能性が何か他のものとidを交換... ExtJSのフォームのデフォルトでは、この振る舞いを見たことがない、それは

{ 
    xtype: 'numberfield', 
    label: 'Some ID', 
    allowBlank: true, 
    name: 'Id' 
}, 
関連する問題