0

我已经声明了一个在 jQuery 中显示对话框的函数

<script type="text/javascript">
function showDialog(str,strtitle)
 {
if(!strtitle) strtitle='Error message';
$('#dialog').dialog('destroy');
$('#dialog').show();
$('#dialog').html(str);
$("#dialog").dialog({
    resizable: false,
    width: 400,
    color: '#BF5E04',
      open: function () {
                    $(this).parents(".ui-dialog:first").find(".ui-dialog
                                titlebar").addClass("ui-state-error");},

    buttons: {"Ok": function() { 
    $(this).dialog("close");    }},

    overlay: { opacity: 0.2, background: "cyan" },title:strtitle});}
   </script>

我在另一个javascript代码中调用了这个函数:

   <script type="text/javascript">
    var myFile = document.getElementById('myfile');
    //binds to onchange event of the input field
    myFile.addEventListener('change', function() {
    //this.files[0].size gets the size of your file.
     var  size = this.files[0].size;
     document.write(showDialog('size','File Size Exceeds')); 
      });
     </script>

当我执行该函数时,它会写入未定义,为什么没有显示对话框。第一个功能在头部,第二个在身体部分。

4

3 回答 3

3

document.write()正在写返回的内容showDialog()。由于该函数没有返回任何内容,因此它将写入Undefined.

document.write() 不是必需的,只需调用 showDialog()。

于 2012-04-04T15:49:55.163 回答
0

您没有在 showDialog() 函数中返回任何值。

于 2012-04-04T15:48:34.970 回答
0

只需摆脱document.write(), 没有返回任何内容showDialog(),因此出现未定义的错误。

<script type="text/javascript">  

  var myFile = document.getElementById('myfile');     
  //binds to onchange event of the input field     
  myFile.addEventListener('change', function() {     
  //this.files[0].size gets the size of your file.      
    var  size = this.files[0].size;      
    showDialog('size','File Size Exceeds');        
  });     

</script> 
于 2012-04-04T15:50:31.880 回答