MTPasswordValidation
Movable Type 5.13 で追加されたパスワードの検証に必要な JavaScript を出力します。
例えば以下のようにテンプレートタグを記述した場合、
<$mt:PasswordValidation form="password_reset_form" password="password" username="username"$>
以下の JavaScript が出力されます。
function verify_password(username, passwd) {
if (passwd.length < 8) {
return "パスワードは最低8文字以上です。";
}
if (username && (passwd.toLowerCase().indexOf(username.toLowerCase()) > -1)) {
return "パスワードにユーザー名を含む事は出来ません。";
}
return "";
}
jQuery(document).ready(function() {
jQuery("form#password_reset_form").submit(function(e){
var form = jQuery(this);
var passwd_input = form.find("input[name=password]");
if ( !passwd_input.is(":visible") ) {
return true;
}
var passwd = passwd_input.val();
if (passwd == null || passwd == "") {
return true;
}
var username = "username" ? form.find("input[name=username]").val() : "";
var error = verify_password(username, passwd);
if (error == "") {
return true;
}
alert(error);
e.preventDefault();
return false;
});
});
- 使い方
<mt:var name="screen_id" value="change-password">
<mt:var name="body_class" value="sign-in">
<mt:setvarblock name="page_title">パスワードの変更</mt:setvarblock>
<mt:setvar name="complete" value="1">
<mt:SetVarBlock name="title"><mt:If name="blog_id"><$mt:BlogName encode_html="1"$>: </mt:If><$mt:Var name="page_title"$></mt:SetVarBlock>
<$mt:Include module="シンプルヘッダー"$>
<mt:if name="error">
<mtapp:statusmsg
id="error"
class="error"
can_close="0">
<mt:var name="error">
</mtapp:statusmsg>
</mt:if>
<script type="text/javascript">
/* <![CDATA[ */
<$mt:PasswordValidation form="password_reset_form" password="password" username="username"$>
/* ]]> */
</script>
<form id="password_reset_form" method="post" action="<mt:var name="script_url">">
<input type="hidden" name="__mode" value="new_pw" />
<input type="hidden" name="token" value="<mt:var name="token" escape="html">" />
<input type="hidden" name="email" value="<mt:var name="email" escape="html">" />
<input type="hidden" name="username" id="username" value="<mt:var name="username" escape="html">" />
<fieldset>
<mtapp:setting
id="name"
label="新しいパスワード"
hint="新しいパスワードを入力してください。 (<$mt:PasswordValidationRule$>)"
show_hint="1"
label_class="top-label">
<input type="password" name="password" id="password" class="text password full" value="<mt:var name="password" escape="html">" />
</mtapp:setting>
<mtapp:setting
id="name"
label="新しいパスワード確認"
label_class="top-label">
<input type="password" name="password_again" id="password_again" class="text password full" value="<mt:var name="password_again" escape="html">" />
</mtapp:setting>
<div class="actions-bar actions-bar-login">
<button
type="submit"
accesskey="s"
title="変更"
class="action primary button">
変更</button>
</div>
</fieldset>
</form>
<$mt:Include module="シンプルフッター"$>
モディファイア
- form="foo"
-
検証する <form> の name 属性を指定します。必須です。
- password="foo"
-
検証するパスワードの <input> フィールドの name 属性を指定します。必須です。
- username="foo"
-
ユーザー名の <input> フィールドの name 属性を指定します。任意です。