-2

私はjavascriptを始めたばかりで、これまでのところその背後にあるロジックを楽しんでいますが、Firefoxに問題があります. 基本的に、php関数内からJavaScriptを生成し、その非安全なピンコード認証スクリプトを生成しています。

したがって、私のphpは含まれている変数のピン番号を渡す呼び出しを作成します。ピンパッドでモーダルポップアップが呼び出され、ユーザーが4桁を入力すると、ピンパッドのonclick関数が数字をパスワードフィールドに追加し、4回のクリック後に非表示フィールドと比較しますピンパッド フォームで、一致する場合は、別の生成された関数を呼び出して成功アクションを完了します。一致するピンパッド フレームが赤にならず、バイパス ボタンが有効になっている場合、または再試行できます。

これは、Chrome、Opera、さらには IE でも正常に機能しますが、Firefox では、ピン フィールドと一致しない場合でも、4 桁の後に成功関数を呼び出します。

これはなぜですか?以下は関数ですが、私は初心者なので、より適切に記述できる可能性があることを覚えておいてください。

function add(text) {
    var TheTextBox = document.pinform.elements['pin'];
    var pincheckbox = document.pinform.elements['pincheck'];
    var sidbox = document.pinform.elements['sid'];
    TheTextBox.value = TheTextBox.value + text;
    if (TheTextBox.value.length == 4) {
        if (pinform.pin.value == pinform.pincheck.value) {
            var pinn = document.getElementById('sid').value;
            eval('pinpass' + pinn + '();');
        } else {
            document.getElementById("bypass").innerHTML = "Bypass";
            document.getElementById("bypass").disabled = false;
            document.getElementById("calc").style.backgroundColor = 'red';
            TheTextBox.value = '';
            return false;
        }
    }
}
4

1 に答える 1

0

いつものように試行錯誤して答えを見つけました笑。ドキュメントを追加する必要があります。pinform.pincheck.value および pinform.pin.value の前

提供されたヘルプに感謝します。ニック

if (TheTextBox.value.length == 4) {
    if (doucment.pinform.pin.value == document.pinform.pincheck.value) {
        var pinn = document.getElementById('sid').value;
        eval('pinpass' + pinn + '();');
    } else {
于 2013-08-11T00:16:38.787 に答える