私は、次のものとおおよそ類似していますが、まったく同じことをしたいと思います。SSNフィールドを持つPersonコンテンツタイプを作成したいと思います。私は整数としてSSNフィールドを保存したいと思いますが、ユーザーが123-45-6789として数値を入力できるようにします。これは、検証トリガの前に、 "123-45-6789"が無効な入力であることを示すために、ダッシュを削除して整数として扱いたいと考えています。Drupal 7では、値が検証される前に、送信されたフォームの内容を変更する方法はありますか?
私は#value_callback関数とデフォルト以外の検証関数の両方を使用しようとしました。問題は、値を強制的に検証することはできますが、変更されていない値は挿入に失敗したdbに渡される値です。たとえば、私は "1233-45-6789"をDrupalに "123456789"と認識させることができますが、データベースはまだ "123-45-6789"になりますが、これは失敗します。
明白な解決策の1つは、値がWebサーバーに送信される前に、クライアント側のjavascriptを使用してこれを変更することです。私はこのルートを避けることを強く望みます。