2013-07-02 68 views
0

只有當用戶選中複選框並提交表單時,我纔會下載PDF文件。現在PDF下載,只要他們選中複選框並點擊提交按鈕。表單提交無關緊要。主要問題是我僅限於Jquery或純JavaScript。我無權訪問後端文件。無論如何,有人知道這樣做嗎?該複選框不需要被要求。下面是代碼我現在所擁有的:只有當複選框被選中並提交表格時才下載文件

$("#formid").submit(function(ev){ 
        ev.preventDefault(); 
        $.ajax({ 
         url: 'processing.cfc', // background processing procedures 
         type: 'get', 
         dataType: 'json', 
         data: $("#formid input, #formid select").serialize(), //pass all present input variables 
         success: formReturn, 
         failure: function(){ alert("There was an error processing your request. \nPlease try again."); return false; } 
        }); 
        var $choice = $(this).find("input[name='checkbox1']:checked");//get the selected option 
        if ($choice.length)// if an option is selected 
        window.open('http://whitepaper.com/info/whitepaper/WhyBuy_WhitePaper_FinalB.pdf') ; 

        var $choice2 = $(this).find("input[name='checkbox2']:checked");//get the selected option 
        if ($choice2.length)// if an option is selected 
        window.open('http://brochure.com/info/brochure/welcome-kit-brochure.pdf') ; 
       }); 

,這裏是爲複選框的HTML:

<div class="chkbox"> 
    <input type="checkbox" class="regular-checkbox" name="checkbox1" 
    id="checkbox-1-1"><label for="checkbox-1-1"></label>&nbsp;&nbsp; 
    <span class="dld">Clayton Homes guide to buying a home</span> 
</div> 
<div class="chkbox"> 
    <input type="checkbox" class="regular-checkbox" name="checkbox2" 
    id="checkbox-1-2"><label for="checkbox-1-2"></label>&nbsp;&nbsp; 
    <span class="dld">Why Clayton Homes brochure</span> 
</div> 

任何幫助表示讚賞。

回答

1

您必須移動PDF以打開AJAX函數的成功調用。

事情的關鍵在這裏:AJAX調用是異步,所以AJAX請求被解僱,而不是之後響應到達之後的PDF將被打開。 類似這樣的:

$("#formid").submit(function (ev) { 
    ev.preventDefault(); 
    $.ajax({ 
     url: 'processing.cfc', // background processing procedures 
     type: 'get', 
     dataType: 'json', 
     data: $("#formid input, #formid select").serialize(), //pass all present input variables 
     success: function() { 
      var $choice = $("#formid input[name='checkbox1']:checked"); //get the selected option 
      if ($choice.length) { // if an option is selected 
       window.open('http://whitepaper.com/info/whitepaper/WhyBuy_WhitePaper_FinalB.pdf'); 
      } else { 
       var $choice2 = $("#formid input[name = 'checkbox2']:checked "); //get the selected option 
       if ($choice2.length) { // if an option is selected 
        window.open('http://brochure.com/info/brochure/welcome-kit-brochure.pdf'); 
       } 
      } 
     }, 
     failure: function() { 
      alert(" 
       There was an error processing your request.\nPlease 
       try again."); 
      return false; 
     } 
    }); 
}); 
    }, 
    failure: function() { 
     alert("There was an error processing your request. \nPlease try again."); 
     return false; 
    } 
}); 

});

+0

感謝您的快速回復。除了最初的成功參數需要在那裏的formReturn之外,這種方法纔有效。我應該包含JavaScript驗證,但它基本上處理所有的表單域。無論如何要把它包含在PDF文件中嗎?再次感謝。 – UTvolfan85

+0

在PDF文件中包含什麼? html表單驗證? –

+0

不,包含AJAX Post的Success部分中的formReturn參數以及PDF下載。 – UTvolfan85

0
`<input type="checkbox" name="checkboxG1m" id="checkbox_a" class="css-checkbox" />` 
`$`("#checkbox_a").click(function(){ 
    if($("#checkbox_a").is(':checked')){ 
     window.open("x.pdf"); 
    } 
}); 
相關問題