欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

after_build 在 form 本身页面 和 form的提交页头同都执行 我只想在 提交页面执行 怎么办

shiping1 的头像
function shipingzhongcustom_form_alter(&$form, &$form_state, $form_id)
{
    if($form_id == 'kefuzongbiaotype_node_form'){
             $form['#after_build'][] = '_kefuzongbiaotype_node_form_validation';
    }
}
//客服总表时间验证
function _kefuzongbiaotype_node_form_validation($form, &$form_state) {   
    $arg0 = arg(0);
    $arg1 = arg(1);
    $arg2 = arg(2);
    global $user;
    //$form_state['submitted'] 为true时 表示 提交表单后的执行
    // $form_state['submitted'] 为true时 表示 form的本身页面

    if($arg0=='node' && is_numeric($arg1) && $arg2=='edit' && $form_state['submitted']){
         $node = node_load($arg1);
         $nodeDateStr =  date('Y-m-d',strtotime($node->field_zong_time[0]['value']));
         $strDate = $form_state['values']['field_zong_time'][0]['value']["date"];
         if($nodeDateStr != $strDate){
             form_set_error('field_zong_time', "日期不能修改,原来日期是 ".$nodeDateStr);
         }
    }
    return $form;
}
普通分类: