2012-11-30 79 views
4

我一直在爲這個年齡段的老年人刮目相看。我在頁面上使用uploadifive來允許文件上傳,這工作正常。現在,當我在jQuery UI對話框中放置瀏覽按鈕/隊列時,單擊「瀏覽」按鈕時文件瀏覽器將不會打開。在jQuery UI對話框中上傳文件

在下面的代碼中,我已經將uploadifive腳本包裝在一個函數中,然後在對話框打開時嘗試調用該函數並且它仍然不起作用。 「瀏覽」按鈕顯示爲應該顯示的狀態,但點擊時不會執行任何操作。

是否有解決方法?

感謝,

// File upload wrapped in function 
    function upbind(){ 
     $('#file_upload').uploadifive({ 
      'auto'    : true, 
      //'checkScript'  : 'check-exists.php', 
      'formData'   : { 
            'timestamp' : '1234567890', 
            'token'  : '1234567890' 
           }, 
      'queueID'   : 'queue', 
      'uploadScript'  : 'uploadify/uploadifive.php', 
      'queueSizeLimit' : 1, 
      'multi'   : false, 
      'buttonText'  : 'BROWSE', 
      //'removeCompleted' : true, 
      'onSelect'   : function(file) { 
            $(".uploadifive-button").css("display", "none"); 
           }, 
      'onCancel'   : function() { 
            $(".uploadifive-button").css("display", "inherit"); 
           },     
      'onUploadComplete' : function(file, data) { console.log(data); alert('The file ' + data + ' uploaded successfully.');} 

     }); 
    } 

    // Call upbind script 
    upbind(); 

    // Process dialog box 
    $("#dialog-add-product").dialog({ 
     autoOpen: false, 
     resizable: false, 
     width: 400, 
     modal: true, 
     open: function(){ 
      $(this).parent().find('button:nth-child(2)').focus(); 
      upbind(); 
     }, 
     buttons: { 
      Ok: function(){ 
       // Function here 

      }, 
      Cancel: function() { 
       // Function here 

       $(this).dialog("close"); 
      } 
     } 
    }); // End add product dialog 

對話框HTML是在這裏;

<div id="dialog-add-product" class="dialog_add" title="Add product"> 
<form name="formAddProduct" id="formAddProduct" method="post" action=""> 
<input type="hidden" name="action" value="" id="addcat" /> 
<table> 
     <tr> 
     <td height="10" align="left" valign="middle" class="smallText" width="120"></td> 
     <td height="10" align="left" valign="middle"></td> 
     </tr> 
     <tr> 
     <td height="31" align="left" valign="middle" class="smallText">Product title:</td> 
     <td height="31" align="left" valign="middle"><input name="fields-ptitle" type="text" class="inputBoxAdd editstatus" id="fields-ptitle" tabindex="5" value="" /></td> 
     </tr> 
     <tr> 
     <td height="31" align="left" valign="middle" class="smallText">Category:</td> 
     <td height="31" align="left" valign="middle"><label for="fields-pcategory"></label> 
      <select name="fields-pcategory" id="fields-pcategory" class="inputBoxAdd editstatus"> 
          <option value="19">Door parts</option> 
          <option value="1">Hinges</option> 
          <option value="21">Testing 222</option> 
         </select></td> 
    </tr> 
     <tr> 
     <td height="31" align="left" valign="middle" class="smallText">Product code:</td> 
     <td height="31" align="left" valign="middle"><input name="fields-pcode" type="text" class="inputBoxAdd editstatus" id="fields-pcode" tabindex="5" value="" /></td> 
    </tr> 
     <tr> 
     <td height="31" align="left" valign="middle" class="smallText">Quantity:</td> 
     <td height="31" align="left" valign="middle"><input name="fields-pqty" type="text" class="inputBoxAdd editstatus" id="fields-pqty" tabindex="5" value="" /></td> 
    </tr> 
     <tr> 
     <td height="31" align="left" valign="middle" class="smallText">Trade price (£):</td> 
     <td height="31" align="left" valign="middle"><input name="fields-pprice" type="text" class="inputBoxAdd editstatus" id="fields-pprice" tabindex="5" value="" /></td> 
    </tr> 
     <tr> 
     <td height="31" align="left" valign="middle" class="smallText">Clearance price (£):</td> 
     <td height="31" align="left" valign="middle"><input name="fields-pclearance" type="text" class="inputBoxAdd editstatus" id="fields-pclearance" tabindex="5" value="" /></td> 
    </tr> 
     <tr> 
     <td height="31" align="left" valign="middle" class="smallText">Unit:</td> 
     <td height="31" align="left" valign="middle"><input name="fields-punit" type="text" class="inputBoxAdd editstatus" id="fields-punit" tabindex="5" value="" /></td> 
    </tr> 
     <tr> 
     <td height="31" align="left" valign="middle" class="smallText">Description:</td> 
     <td height="31" align="left" valign="middle"><textarea name="fields-pdescription" id="fields-pdescription" cols="30" rows="5"></textarea></td> 
    </tr> 
     <tr> 
     <td align="left" valign="middle" class="smallText">Image:</td> 
     <td align="left" valign="middle"><div id="queue"></div> 
    <input id="file_upload" name="file_upload" type="file" multiple></td> 
    </tr> 
     <tr> 
     <td height="31" align="left" valign="middle" class="smallText">Active:</td> 
     <td height="31" align="left" valign="middle"><input name="fields-pactive" type="checkbox" id="fields-pactive" value="1" /></td> 
    </tr> 
     <tr> 
     <td height="31" align="left" valign="middle" class="smallText"><div class="savetick"><img src="images/accept.png" width="24" height="24" /></div><div class="savespinner"><img src="images/savespin.gif" width="16" height="16" /></div></td> 
     <td height="31" align="left" valign="middle">&nbsp;</td> 
     </tr> 
</table> 
</form> 
</div> 
+0

你好嗎調試工具中的任何錯誤? –

+0

沒什麼。這有點奇怪 – Rob

+0

你可以在這裏上傳HTML代碼嗎? –

回答

4

顯然有一個與modal: true選項的問題,它可以防止Windows文件,然後設置爲modal: false和工作。

// Process dialog box 
$("#dialog-add-product").dialog({ 
    ... 
    modal: false, 
    open: function(){ 
     $(this).parent().find('button:nth-child(2)').focus(); 
     upbind(); 
    }, 
    ... 
}); // End add product dialog 
+0

是的,'modal'選項有問題。它適用於模態對我來說是錯誤的。但是'modal:true'可以用firefox上傳,但不能在Chrome中工作 –

+1

@ jd_7上帝保佑你,男人! – Ibrahim

0

首先,把你的div形式標記內,並給予一試。

即使我有同樣的問題。

檢查由geek

希望這有助於給出的解決方案。

0

這裏有一些意見。

我無法讓您的代碼與.uploadifive({一起使用。我不得不用.uploadify({來代替I found on the demo page。這個改變至少讓代碼在jsfiddle中正確運行。

其次,我會給你代碼的另一個審查,因爲使用默認的uploadify代碼,瀏覽器似乎工作得很好。

工作實例:http://jsfiddle.net/t6hHr/2/