Drupal 6 在drupal 6.x中的form textfield上按enter键时禁用页面重新加载

Drupal 6 在drupal 6.x中的form textfield上按enter键时禁用页面重新加载,drupal-6,ahah,Drupal 6,Ahah,我有一个只包含一个文本字段的表单,预期的行为是,当用户在文本框中按enter键时,文本框的值应该被提交,但不会重新分页(刷新)加载。 我尝试了各种设置AHAH的方法,但仍然无法实现预期的行为,页面重新加载。 我一直在寻找解决这个问题的办法,但运气不好 请建议如何做,或指示我在有用的地方 以下是代码: function user_porfile_message_form(){ $form = array(); $form['element1'] = array( '#type'

我有一个只包含一个文本字段的表单,预期的行为是,当用户在文本框中按enter键时,文本框的值应该被提交,但不会重新分页(刷新)加载。 我尝试了各种设置AHAH的方法,但仍然无法实现预期的行为,页面重新加载。 我一直在寻找解决这个问题的办法,但运气不好

请建议如何做,或指示我在有用的地方 以下是代码:

function user_porfile_message_form(){
  $form = array();

  $form['element1'] = array(
    '#type' => 'textfield',
    '#title' => '',
    '#default_value' => '',
  );

    $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
    '#attributes' => array('class' => 'no-js'),
    '#ahah' => array(
      'path' => 'module/file/callback',
      'wrapper' => 'some-wrapper',
      'event' => 'click', 
    ),
  );
    return $form;
}

找到了解决方案,在这里:

function some_form(&$form_state){
  $form = array();
        $form['text'] = array(
            '#value' => "Text",
            '#prefix' => '<div id="some-wrapper">',
            '#suffix' => '</div>',
        );

    $form['text_input'] = array(
    '#type' => 'textfield',
    '#title' => '',
    '#default_value' => '',
  );

    $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
        '#attributes' => array('class' => 'no-js'),
    '#ahah' => array(
      'path' => 'module/file/callback',
      'wrapper' => 'some-wrapper',
      'event' => 'click', 
    ),
  );
    return $form;
}

function some_form_submit(){
//Do whatever has to be done for submission
}

function some_form_callback(){
    $form_state = array('storage' => NULL, 'submitted' => FALSE);

    $form_build_id = $_POST['form_build_id'];
  $form = form_get_cache($form_build_id, $form_state);
  $args = $form['#parameters'];
  $form_id = array_shift($args);
  $form_state['post'] = $form['#post'] = $_POST;

  $form['#programmed'] = $form['#redirect'] = FALSE;
  drupal_process_form($form_id, $form, $form_state);
    $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id);

    $changed_elements = $form['text'];

    unset($changed_elements['#prefix'], $changed_elements['#suffix']);
    drupal_json(array(
        'status'   => TRUE,
        'data'     => drupal_render($changed_elements),));
}

/**
 * Implement hook_menu().
 */
function module_menu(){
  $items['module/file/callback'] = array(
    'page callback' => 'some_form_callback',
    'access callback' => TRUE,
    'file' => 'module.module',
    'type' => MENU_CALLBACK,
  );
   return $items;
}
函数某种形式(&$form\u状态){
$form=array();
$form['text']=数组(
“#值”=>“文本”,
“#前缀”=>”,
“#后缀”=>”,
);
$form['text_input']=数组(
“#键入”=>“文本字段”,
“#标题”=>”,
“#默认值”=>”,
);
$form['submit']=数组(
“#键入”=>“提交”,
“#value”=>t('Save'),
“#attributes”=>array('class'=>'no js'),
“#ahah”=>数组(
“路径”=>“模块/文件/回调”,
“包装器”=>“某些包装器”,
'事件'=>'单击',
),
);
返回$表格;
}
函数某些表单提交(){
//做任何必须做的事情来提交
}
函数some_form_callback(){
$form_state=array('storage'=>NULL,'submitted'=>FALSE);
$form\u build\u id=$\u POST['form\u build\u id'];
$form=form\u get\u缓存($form\u build\u id,$form\u state);
$args=$form['#parameters'];
$form\u id=array\u shift($args);
$form_state['post']=$form['post']=$\u post;
$form['#programmed']=$form['#redirect']=FALSE;
drupal_进程_表单($form_id,$form,$form_state);
$form=drupal\u rebuild\u form($form\u id,$form\u state,$args,$form\u build\u id);
$changed_elements=$form['text'];
未设置($changed_elements['#prefix'],$changed_elements['#suffix']);
drupal_json(数组(
“状态”=>TRUE,
“数据”=>drupal_渲染($changed_元素),);
}
/**
*机具挂钩菜单()。
*/
功能模块_菜单(){
$items['module/file/callback']=数组(
“页面回调”=>“某些形式的回调”,
“访问回调”=>TRUE,
'文件'=>'模块.module',
“键入”=>菜单\u回调,
);
退回$items;
}