1

チェックボックスをオンにすると、パスワードボックスが消えて再表示されるだけです。

かみそりビューのコード:

<div id="passtext" class="editor-field">
    @Html.PasswordFor(m => m.Password)
    @Html.ValidationMessageFor(m => m.Password)
</div>

            <div class="editor-label">
                <input id="passcheckbox" type="checkbox" /><label>Show?</label>
                @Html.CheckBoxFor(m => m.RememberMe)
                @Html.LabelFor(m => m.RememberMe)
            </div>

下部の @renderparttail に Javascript 関数があります。

@section Scripts {
<script type="text/javascript">
    $('#text').showPassword('#checkbox');
</script>
}

そして、他のスクリプトとともにビューの上部に含まれる jquery.showpassword-1.0.js:

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.showpassword-1.0.js")" type="text/javascript"></script>

そして、jquery.showpassword-1.0.js を見たことがない場合のために、ここにコードを示します。

(function($){$.fn.extend({showPassword:function(f){return this.each(function(){var c=function(a){var a=$(a);var b=$("<input type='text' />");b.insertAfter(a).attr({'class':a.attr('class'),'style':a.attr('style')});return b};var d=function($this,$that){$that.val($this.val())};var e=function(){if($checkbox.is(':checked')){d($this,$clone);$clone.show();$this.hide()}else{d($clone,$this);$clone.hide();$this.show()}};var $clone=c(this),$this=$(this),$checkbox=$(f);$checkbox.click(function(){e()});$this.keyup(function(){d($this,$clone)});$clone.keyup(function(){d($clone,$this)});e()})}})})(jQuery);

これがどのように機能するかのデモです: http://sandbox.unwrongest.com/forms/jquery.showpassword.html

チェックボックスの最初のクリックでパスワードテキストボックスを非表示にし、2回目のクリックで再表示しますが、3回目のクリックでパスワードのみを表示するだけです* ** * ** * *消えて表示されませんテキストはまったくありませんが、テキストボックスはそのままです。

問題なく .aspx ビューで使用しましたが、Razor ビューを使用する方法を教えてください。

4

1 に答える 1

2

showPasswordプラグインをid #text:の入力フィールドにアタッチしました$('#text').showPassword('#checkbox');が、パスワードフィールドには#Passwordidがあります。

したがって、完全に機能する例を次に示します。

モデル:

public class MyViewModel
{
    public string Password { get; set; }
}

コントローラ:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel());
    }
}

意見:

@model AppName.Models.MyViewModel

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.showpassword-1.0.js")" type="text/javascript"></script>

<script type="text/javascript">
    $(function () {
        $('#Password').showPassword('#checkbox');
    });
</script>

<div id="passtext" class="editor-field">
    @Html.PasswordFor(m => m.Password)
    @Html.ValidationMessageFor(m => m.Password)
</div>

<label for="checkbox">
    <input id="checkbox" type="checkbox" /> Show password
</label>
于 2011-02-13T17:03:35.503 に答える