2つのフォームが実際に別々のフォームである限り、これは自動的に発生するはずです。つまり、<form>
ログイン用と登録用の2つの別個の要素が必要です。
編集:
ブラウザは、フォーカスのあるフォームに基づいて、どの送信ボタンを「押す」かを決定します。1つのフォームに複数の送信ボタンがある場合(ここでの場合のように聞こえます)、ブラウザは最初に見つかった送信ボタンを使用して送信します。私はその行動を回避する方法を知りません。
あなたは本当に、単一のフォームで2つのアクションのいずれかを実行する方法を求めています。これはフォームモデルを壊します。フォームは、単一のURLでアクション(GETまたはPOST)を実行するように設計されています。この動作を回避する1つの方法を考えることができますが、それは特にクリーンではありません。
提案:
私は私が話していることの大まかな図面を作りました。基本的に、フォームの上部に2つのラジオボタンを追加します。1つはログイン用、もう1つは登録用です。それらの下に2つのフィールドセットがあります。1つはログイン用のフィールド、もう1つは登録用のフィールドです。フォームには送信ボタンが1つあります。
クリックしてフルサイズの画像を表示http://img220.imageshack.us/img220/5923/boardc.th.jpg
Javascriptを使用していないユーザーは、適切なラジオボタンをチェックし、適切なフィールドのセットに入力します。Javascriptを使用しているユーザーの方がエクスペリエンスが向上します。ログインラジオボタンがチェックされている場合は、登録フィールドセットを非表示にします。[登録]ラジオボタンがオンになっている場合は、ログインフィールドセットを非表示にします。
適切なスタイリングを使用すると、見栄えを良くすることができます。ロジックは、ラジオボタンフィールドの値をチェックして、実行するアクションを決定する必要がありますが、それはそれほど難しいことではありません。
単一のフォームの制限を考えると、私が思いつくことができるのはそれだけです。他の制約によっては、これは実行可能な解決策ではないかもしれませんが、私が持っているのはそれだけです。幸運を祈ります。私が話し合ったことについて質問があれば教えてください。