1

「新しいアカウント」と「既存のユーザー」の2つのラジオボタンがあるログインページがあります。「新しいアカウント」を選択すると、「ユーザー」フィールドに「新しいアカウント」というテキストが自動的に入力され、「パスワード」フィールドは空白のままになります。「新しいアカウント」ラジオボタンが選択されたときに編集できないようにフィールドをグレー表示する必要がありますが、データベースへのアクセスに使用されるため、フィールド内の情報は引き続き渡されます。フィールドを無効にして、目的の編集不可能な灰色のフィールドを取得できますが、情報はデータベースに渡されません。

「ユーザー」フィールドと「パスワード」フィールドの代わりに2つの非表示フィールド(データベースアクセスに必要な情報が自動入力される)を作成して、これを修正しようとしました。これにより、「新しいアカウント」中に表示フィールドを無効にすることができますラジオ ボタンがクリックされ、変更されることのない新しいユーザー ログイン情報が引き続き渡されます。これは、既存のユーザーとしてログインしようとするまで正常に機能します。その場合、既存のアカウント情報のユーザー入力が 2 つの非表示フィールドに自動入力されません。

この問題を解決するにはもっと簡単な方法があるかもしれませんが、私の調査と試行のすべてがまだ成功していません。ログインページで非常にシンプルで頻繁に使用されるアプローチのように見えるため、この質問をするのは気が進まなかったのですが、私の検索のすべてでは、まだ機能しているものは何も得られていません. 正しい方向への入力やナビゲーションに感謝します。

4

2 に答える 2

1

あなたの問題に対する正しくて痛みのない解決策は、2つの異なるフォームタグを使用し(それらをネストしないように注意してください)、選択したラジオボタンに応じてフォームを表示/非表示にすることです。

また、ユーザーの便宜のために、ユーザーがすでにユーザーフィールドに入力していて、後で別のバージョンに切り替える場合は、あるフォームから別のフォームにユーザー名をコピーする必要があります。

編集

完全なソリューション:

HTML

<label><input class="formSwitcher" type="radio" name="formSwitch" data-form="#divForm1"> Form 1</label>
<label><input class="formSwitcher" type="radio" name="formSwitch" data-form="#divForm2"> Form 2</label>

<hr>    

<div class="hiddenForm" id="divForm1">Put form 1 in here</div>
<div class="hiddenForm" id="divForm2">Put form 2 in here</div>

<em> JS

// if someone clicks on one radio button
$('.formSwitcher')​​​​.change(function(){
    // get the form id we want to show (from the "data-form" attribute)
    var formIdToChange = $(this).data('form');
    // hide all forms first
    $('.hiddenForm').hide();
    // show the specific form
    $(formIdToChange).show();
});

​// initially hide all forms
$('.hiddenForm').hide();
// initially call the change method if one radio is already selected on page load
$('.formSwitcher:checked').change();​
于 2012-09-18T15:02:31.533 に答える
0

データベースへのアクセスが許可されるため、既存のユーザー フィールドを変更する必要があるということですか? あなたがしたいことは、選択したものに応じてフィールドのプロパティを変更することだと思います。たとえば、ユーザーが新しいユーザーをクリックしたときに自動入力フィールドを設定する必要がある場合は、次のように記述します

document.form.AutoPopUser.value="required value"

そして、その人が既存のユーザーをクリックすると、あなたはできる

document.form.AutoPopUser.value=""

または、その部分が存在しても既存のユーザーログインが台無しになる場合は、そのセクションを div 内に配置し、選択したオプションに応じて作成または破棄することで、そのセクション全体を削除できます。私はあまり明確ではないように感じますが、必要なのは、必要のないものを取り除き、必要なものを追加するための賢い onClick 関数のセットだと思います。これに合わせてコードを投稿できれば、それは素晴らしいことです。

于 2012-09-18T15:41:25.447 に答える