-2
<script language="JavaScript">
    function validate(x) {



        var cur_p = document.getElementById('current').value;
        var new_p = document.getElementById('new').value;
        var con_p = document.getElementById('confirm').value;

        document.getElementById('msg_p').innerHTML = '';
        document.getElementById('msg_cur').innerHTML = '';


        if(x != cur_p)
        {   document.getElementById('msg_cur').innerHTML = ' Your password was incorrect';
            return false;
        }   

        if(new_p != con_p)
        {   document.getElementById('msg_p').innerHTML = 'Passwords do not match';
            return false;
        }

        return (true);

    }
</script>

html

<form action='change-password.php' method='post' onsubmit="return validate('<?=$current?>')" >

私は自分のコードにこれらを持っています。これらの if の結果を同時に表示することはできません。

if(x != cur_p)
and 
if(new_p != con_p)

私が配置した場合

if(x != cur_p){} 

の一番上に

if(new_p != con_p){}

if(x != cur_p) の応答結果が表示され、後者は表示されません

およびその逆。

これら 2 つの if の結果を表示するにはどうすればよいですか (これらの条件が満たされていると仮定して)

4

2 に答える 2

3

問題は、最初の後に戻るfalseため、2 番目に到達しないことです。代わりに、それぞれにブール変数を設定し、ブール変数を返します (trueどちらも失敗した場合、またはfalseどちらかが失敗した場合)。

    // Boolean variable starts true, will get set to false if either condition is met:
    var okFlag = true;
    if(x != cur_p)
    {   document.getElementById('msg_cur').innerHTML = ' Your password was incorrect';
        // Set to false
        okFlag = false;
    }   

    if(new_p != con_p)
    {   document.getElementById('msg_p').innerHTML = 'Passwords do not match';
        // Set to false
        okFlag = false;
    }
    // Return the flag, which is either true or false.
    return okFlag;
于 2012-11-27T03:32:20.567 に答える
2

まず、コードにタイプミスがあります

document.getElementById('msg_p').innerHTM = '';  <-- Missing an L

第二に、もちろん、あなたが戻った場合、それは関数を終了します。したがって、コードは両方のステートメントを実行しません。

変化する

    if(x != cur_p)
    {   document.getElementById('msg_cur').innerHTML = ' Your password was incorrect';
        return false;
    }   

    if(new_p != con_p)
    {   document.getElementById('msg_p').innerHTML = 'Passwords do not match';
        return false;
    }

    return (true);

    var isValid = true;
    if(x != cur_p)
    {   document.getElementById('msg_cur').innerHTML = ' Your password was incorrect';
        isValid = false;
    }   

    if(new_p != con_p)
    {   document.getElementById('msg_p').innerHTML = 'Passwords do not match';
        isValid = false;
    }

    return isValid;
于 2012-11-27T03:32:54.833 に答える