1

私はc#/ aspx/jqueryを使用してWebフォームプロジェクトに取り組んでいます。どこで処理すればよいかわかりませんOnclick。両方のオプション(C#またはjqueryで実行)は実行可能のようです。どちらがより良い習慣でしょうか?

シナリオは次のとおりです。

パスワードとシングルラインの間で変更して、checkboxを切り替えるaを作成したいと思います。textbox's textmode

現在、C#で処理しているため、マークアップ用に次のコードがあります。

<asp:Checkbox ID="CheckBox1" OnCheckedChanged="CheckBox1_OnCheckedChanged"/>

コード:

protected virtual void OnCheckedChange(EventArgs e)
{
     If (CheckBox1.TextMode == TextMode.Password)
          CheckBox1.TextMode = TextMode.SingleLine;
     else
          CheckBox1.TextMode = TextMode.Password;
}

これの使用例は次のとおりです。ユーザーが自分のパスワードを入力しています。同じページで、チェックボックスをオンにすることで、パスワードを非表示にするかどうかを選択できます。

4

2 に答える 2

2

どちらがより良い習慣でしょうか?

あなたの機能要件は何ですか?

  • これをasp.netコードビハインドのC#で設定すると、機能させるためにポストバックが必要になります。これは、ページが更新され、テキストボックスが変更されることを意味します。
  • クライアント(JS / JQuery)では、ページは更新されません。

次に、必要な作業と必要な品質を評価します。(優れたユーザーエクスペリエンスが必要で、JSの記述に問題がない場合は、JSに入れてください。時間に余裕があり、更新に問題がない場合は、asp.netで実行してください)。

私は、(私の謙虚な意見では)そのような決定がどのように行われるべきかについての一般的な意味でのあなたの質問に答えようとしています。 現実的には、これはjavascriptで実装するのは非常に簡単であり、そこで実行する必要があります。


次に、コードについて説明します(asp.netコードの背後に配置する方法を知っていると思いますので、JSアプローチを記述します)。

HTML:

My Password: <input type="password" id="mytext" /> <br />
Hide Chars : <input id="passChk" type="checkbox" checked="true" />

Javascript:

$(function() {
    $("#passChk").change(function(){
        if(this.checked) {
            $("#mytext").attr("type","password");
        } else {
            $("#mytext").attr("type","text");
        }
    });
});

ここで実行されていることを確認してください:http://jsfiddle.net/rC5NW/2/

于 2013-01-29T15:51:37.153 に答える
0

受け入れられた答えを実装しようとした後、一部のブラウザ(私はGoogle Chromeを使用)がtype属性の変更を許可していないことに気付きました。これを回避する方法はありますが、私の目的にはそれだけの価値はないと思います。

したがって、C#を使用する方がよい場合があります。

関連する質問

于 2013-01-31T21:57:39.903 に答える