2009-06-27 4 views
0

CCKフォーム上のフォームの検証を発射から送信ボタンをカスタムを停止することは、次のとおりです。私のようにhook_form_alter使用CCKフォームにFIELDGROUP内の送信ボタンを追加しました

function mymodule_form_alter(&$form, $form_state, $form_id) { 

    if ($form_id == 'object_node_form') { 

    $form['group_wikipedia']['search'] = array(

'#type' => 'submit', 
'#value' => t('Search Wikipedia'), 
'#name' => 'searchwiki', 
'#submit' => array('mymodule_searchwiki_submit'), 
    ); 

    } 
} 

私は、ボタンを押すとフルフォームのための検証ハンドラ。フォームの最後に[送信]ボタンが押されたかのように実行します。

#nameプロパティを 'op'から 'searchwiki'に変更すると、この種の混乱を防ぐことができますが、そうではないと考えました。

誰でもこの回避策を知っていますか?

答えて

0

私はフォーム全体が、ユーザーが押した送信ボタンに関係なく常に送信されると考えています。 検索機能を作成するには、データをフェッチして表示するAJAXを作成します。 jQueryを使用すると、フォームの送信を停止することもできますが、ボタンのクリック機能でFALSEを返すことができます(jsで行うことができます)。あなたはおそらく、Drupalフォームapiの良さを使用することはできません。

+0

を使用することができますユーザーが検索をヒットした後のテキスト。 CCKはAdd Moreボタンでこれを行いますので、私はそこに掘り起こしていきます。とにかくありがとう。最後の手段としてjqueryなどを使用することがあります。 – hitfactory

0

あなたは、計画は、私がバックグラウンドでウィキペディアにクエリをオフに解雇として体のフィールドを置き換えることができるようにボタンにAHAHコールバックを追加することであるjQueryのevent.preventDefault()

http://api.jquery.com/event.preventDefault/

関連する問題