2013-10-26 77 views
-2

如果輸入值只有輸入,那麼用戶應該能夠上傳文件。但是一旦我點擊按鈕窗口上傳文件彈出。我不希望它除非用戶輸入下面所述的輸入文件中的值,否則彈出。 這些輸入:阻止使用javascript彈出的上傳窗口

<input type="text" id="id" placeholder="Enter Audit ID" autocomplete="off"> 
<input type="text" id="email_id_upload" placeholder="Enter Email_id " autocomplete="off"> 

這是上傳:

<form> 
    <input type="file" name="file" id="file"><br> 
    <input type="button" name="submit_file" value="Submit"> 
</form> 

這是JS來檢查用戶是否有輸入的所有值:

$('#file').click(function(){ 

     var email_id_upload= $('#email_id_upload').val(); 
     var id = $('#id').val(); 
     if(email_id_upload.length !==0 && id.lenght !==0) 
     { 
     //allow upload window to pop up 

     } 
     else 
      { 
       if(email_id_upload.length ===0 && id.length ===0) 
       {$('#message_content2_1').html("<span style='color:red'>Please fill email id and audit id</span>");} 
       else{ 
       if(email_id_upload.length ===0) 
       {$('#message_content2_1').html("<span style='color:red'>Please fill email id</span>");} 
       if(id.length ===0) 
       {$('#message_content2_1').html("<span style='color:red'>Please fill email id and audit id</span>");} 
       } 
      } 
    }); 
+1

添加'返回false'在點擊功能,無論你想阻止點擊做任何事情 –

回答

1

您已經張貼的方式你的JS,它實際上適用於我。如果條件有一個錯字:id.lenght。一般來說,僅僅綁定到點擊事件並不是一個好主意,因爲有人可能會觸發例如提交事件,通過在表單字段中按Enter鍵。

在你的例子中,當兩個字段都是空的,並且有人單擊#file元素時,else塊被執行,並且click事件冒泡到#file元素的容器。要停止事件冒泡,請在else塊的末尾返回false。

1

我,只是糾正你的腳本。認爲這將是工作:

$('#file').click(function(e){ 

    var email_id_upload= $('#email_id_upload').val(); 
    var id = $('#id').val(); 
    if(email_id_upload.length !==0 && id.lenght !==0) 
    { 
    //allow upload window to pop up 

    } 
    else 
     { 
      e.preventDefault(); 
      if(email_id_upload.length ===0 && id.length ===0) 
      {$('#message_content2_1').html("<span style='color:red'>Please fill email id and audit id</span>");} 
      else{ 
      if(email_id_upload.length ===0) 
      {$('#message_content2_1').html("<span style='color:red'>Please fill email id</span>");} 
      if(id.length ===0) 
      {$('#message_content2_1').html("<span style='color:red'>Please fill email id and audit id</span>");} 
      } 
     } 
});