Это должно происходить автоматически, если две формы фактически являются отдельными формами. Другими словами, должно быть два отдельных элемента <form>
, один для входа в систему и один для регистрации.
Edit:
Браузеры определяют, какую кнопку отправки «нажать», на основе формы, которая имеет фокус. Если в одной форме есть несколько кнопок отправки, что походит на ситуацию, браузер отправит, используя первую найденную кнопку отправки. Я не знаю, как обойти это поведение.
Вы действительно спрашиваете, как выполнить одно из двух действий с одной формой, что нарушает модель формы: форма предназначена для выполнения действия (GET или POST) с одним URL-адресом. Я могу придумать один способ обойти это поведение, но оно не особо чистое.
Предложение:
Я сделал грубый рисунок того, о чем я говорю. Вы в основном добавляете две кнопки-переключателя в верхней части формы, одну для входа в систему и одну для регистрации. Под ними у вас есть два набора полей, один с полями для входа в систему и один с полями для регистрации. Форма имеет одну кнопку отправки.
Нажмите, чтобы посмотреть в полный размер http://img220.imageshack.us/img220/5923/boardc.th.jpg
Пользователи без Javascript будут проверять соответствующий переключатель и заполнять соответствующий набор полей. Пользователи с Javascript имеют лучший опыт. Если установлен переключатель «Войти», скрыть набор полей регистрации. Если установлен переключатель радио регистрации, скрыть набор полей для входа.
При правильном оформлении вы можете сделать его красивым. Ваша логика должна была бы проверить значение поля переключателя, чтобы определить, какое действие предпринять, но это не должно быть слишком сложно.
Это все, что я могу придумать, учитывая ограничение единой формы. Это может не быть жизнеспособным решением вообще, в зависимости от ваших других ограничений, но это все, что у меня есть. Удачи, и дайте мне знать, если у вас есть какие-либо вопросы о том, что я обсуждал!