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>

関数を実行すると、「未定義」と表示されます。ダイアログボックスが表示されないのはなぜですか。最初の機能は頭で宣言され、2番目の機能は体の部分で宣言されます。

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 に答える