2014-06-15 49 views
0

我已经做了一个php表单,其中我想显示一个加载gif,如果某些条件得到满足。这是一个可读的伪代码/我需要在jQuery中使用的逻辑示例。加入两个简单的jQuery条件

if (file_input_is_set && submit_button_is_clicked) { 
    <div class="progress-bar">tada...loading_gif</div> 
    } 

我有这两个单独工作的代码。 第一个代码显示设置文件输入时的加载gif。

jQuery().on('change', 'input[type="file"]', function(e) { 

二码显示加载GIF被点击的形式提交按钮时。

jQuery("input[name='profile_submit']").click(function (e) { 

因为我几乎一无所知jQuery的,我需要帮助把这些事件一起。请原谅我,如果我的术语是错误的。这是我尝试过的不起作用,甚至在我按下提交按钮之前显示加载gif。所以我需要一个像php的&&运算符那样工作的函数,我不知道你在jquery中是如何实现的。

jQuery().on('change', 'input[type="file"]', function(e) { 
    jQuery("input[name='profile_submit']").click(function (e) { 
    //jQuery('#submit-button').hide(); 
    jQuery('.progress-bar').fadeIn(1000); 
    }); 
    }); 

注意:您看到的代码有很多jQuery是由于WordPress的原因(其中形式使用),因为它需要它是在没有任何冲突模式。


转述问题(从@webkit提示):我检查,如果 file_input_is_set /有效时提交事件触发怎么办?

+1

检查条件和检查事件(ch ange,click ..)你可以将事件委托给一个处理程序,或者在提交事件触发器时也检查输入是否有效 – webkit

回答

1

从上次操作开始,表单提交。然后检查文件是否存在于文件输入:

jQuery("input[name='profile_submit']").click(function (e) { 
     if(jQuery('input[type="file"]').val() != ''){ 
     jQuery('.progress-bar').fadeIn(1000); 
     } 
}); 

的jsfiddle演示:http://jsfiddle.net/nDNP5/

+0

我在响应中添加了一个可用的JSFiddle。 – bloodyKnuckles

+0

它的工作,是的。我不得不刷新缓存以查看更改。对不起,我以前没有意识到。 – gurung

1

,你可以这样做:

jQuery("input[name='profile_submit']").click(function (e) { 
    // check to see if file is valid 
    if (jQuery('input[type="file"]').val() != "") { 
     // load 
     jQuery('.progress-bar').fadeIn(1000); 
    } 
}); 

或者这样:(仅在已选定的文件将您激活提交btn)

jQuery('input[type="file"]').on('change', function (e) { 
    // check to see if file is valid 
    if (jQuery('input[type="file"]').val() != "") { 
     jQuery("input[name='profile_submit']").off().on('click', function() { 
      jQuery('.progress-bar').fadeIn(1000); 
     }); 
    } else { 
     jQuery("input[name='profile_submit']").off() 
    } 
}); 
+0

感谢您的努力 – gurung