0

私はJavaScriptが初めてなので、これが明らかな場合はご容赦ください。ただし、前の関数アクションのすべての条件がfalseを返した場合にのみ、2番目の関数を開始したい

function validateForm()
{
    var file = document.getElementById('file');
        if (file.files[0].size >= 11000000) {

        alert('File too Big');
        return false;
    }

    var x=document.forms["myForm"]["title"].value;
         if (x==null || x==""){

        alert("First name must be filled out");
        return false;
    }

    // if both returned false then start this function:

    function start_Uploading(){
        document.getElementById('message').innerHTML = 'Loading...';

       return true;
    }

html:

<input type='submit'  onclick="return validateForm();">
4

4 に答える 4

1

関数からは 1 回しか返せないため、false 値のバイナリ AND を返す必要があります。

function validateForm()
{
    var condition1;
    var condition2;

    if(...) condition1 = false;
    if(...) condition2 = false;

    return (condition1 && condition2);
}

これは、validateForm が false を返した場合に関数を開始する方法です。

if(!validateForm())
{
     // Execute your function
     start_Uploading();
}
于 2013-01-14T17:48:07.327 に答える
1

戻り値は関数呼び出しを終了します。変数を設定して、入力が有効かどうかを確認したいだけです。次に、isValid が true かどうかを確認して確認し、そこから関数を呼び出すことができます。

また、元のコードで注目に値するのは、

function start_Uploading(){...}

関数を実際に実行するのではなく、関数を定義するだけです。start_uploading()関数を実行する必要があります。

function validateForm()
{
    var isValid = true;
    var file = document.getElementById('file');
    if (file.files[0].size >= 11000000) {
        alert('File too Big');
        isValid=false;
    }

    var x=document.forms["myForm"]["title"].value;
    if (x==null || x==""){
        alert("First name must be filled out");
        isValid=false;
    }

    // if both returned false then start this function:

    function start_Uploading(){
        document.getElementById('message').innerHTML = 'Loading...';
        return true;
    }
    if(isValid){
        start_Uploading();
    }
}
于 2013-01-14T17:48:29.810 に答える
1

この関数を呼び出すと、最初の関数と 2 番目の関数の値がチェックされ、それらが false を返す場合、start_Uploading() 関数が実行されます。

function sampleFunction() {
                if(!firstFunction() && !secondFunction()){
                    start_Uploading();
                } 
            }
于 2013-01-14T17:48:32.657 に答える
1

jQuery の場合:

<script type="text/javascript">
$("#myForm").submit(function() {
    if ($("#file")[0].files[0].size >= 11000000) {
        alert('File too Big');
        return false;
    }

    if ($("#myForm input[name=title]").attr("value") == ""){
        alert("First name must be filled out");
        return false;
    }

    $('#message').html('Loading...');
    return true;
})
</script>
<form id="myForm">
    <input type='submit'>
</form>
于 2013-01-14T17:52:07.310 に答える