0

入力した2つのパスワードは同じでなければならず、一致しない場合に通知を表示したい。目的は、保存ボタンを押した後ではなく、入力中に通知を表示することです。

私はJavaScriptが初めてで、functionname function()表記も試しました。

次のjs:

function updateError (error) {
if (error == true) {
    $(".error").hide(500);
}else{
 $(".error").show(500);
}
};

function checkSame() {
   var passwordVal = $("input[name=password-check]").val();
   var checkVal = $("input[name=password]").val();
   if (passwordVal == checkVal) {
     return true;
   }
   return false;
};


document.ready(function(){
 $("input[name=password-check]").keyup(function(){updateError(checkSame());});
 $("input[name=password]").keyup(function(){updateError(checkSame());});
});

および HTML:

 @Html.Password("password") 
 @Html.Password("password-check")     
 <span class="error">Errortext</span> </td></tr>

しかし、うまくいきません.. Thx!

編集:JSコードを次のように変更しました:

$("input[name=password-check]").keyup(function(){updateError(checkSame());}); $("input[name=password]").keyup(function(){updateError(checkSame());});

--> 機能するようになりましたが、ユーザーが一致するパスワードを入力した後、1 回だけ検証が機能しなくなりました

解決済み、問題は引用でした:

$("input[name='password-check']").keyup(function(){updateError(checkSame());});
$("input[name='password']").keyup(function(){updateError(checkSame());});
4

3 に答える 3

1

あなたは反対のことをしています

if (error == true) {
    $(".error").show(500);
}else{
 $(".error").hide(500);
 }

コメントに従って編集:

次のように名前を引用符で囲んでみてください

$("input[name='password-check']").keyup(function(){updateError(checkSame());});
$("input[name='password']").keyup(function(){updateError(checkSame());});
于 2012-05-18T14:05:29.110 に答える
0

int2000が言ったように、keyupでcheckSameを起動するのは奇妙に思えますが、それが必要な場合はOKです。次のようにcheckSame関数を変更してみてください。

function checkSame() {
   var passwordVal = $("input[name=password-check]").val();
   var checkVal = $("input[name=password]").val();
   if (passwordVal == checkVal) {
     return false;
   }
   return true;
};

checkSameの結果をupdateErrorに渡すことを忘れないでください。したがって、パスワードが同じであれば、エラーは発生しません。

于 2012-05-18T14:15:52.440 に答える
0

入力時にパスワードがまだ一致していないため、checkSame では、indexOf を使用して passwordVal に checkVal が含まれているかどうかを確認することができます。

   if (passwordVal.indexOf(checkVal)>-1 || checkVal.indexOf(passwordVal)>-1  ) {
     return true;
   }
于 2012-05-18T14:09:46.087 に答える