0

我是 javascripts 的新手,所以如果这看起来很明显,请原谅我,但我想要的是启动第二个函数,如果之前函数操作的所有条件都返回 false

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

您只能从函数返回一次,因此您必须返回错误值的二进制 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 是否为真,然后从那里调用您的函数。

在您的原始代码中还值得注意的是

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

调用此函数,它将检查第一个函数和第二个函数的值,如果它们返回 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 回答