0

私は fancybox に対して次の呼び出しを使用しています: $.fancybox.showActivity(); ローディングアニメーションを表示します。Firefox と IE で動作します。ただし、Chrome と Safari は非常に一貫性がありません。呼び出しに問題があるかどうかをテストするために、ボタンを作成し、JS 関数を介して呼び出しを添付しました。ボタンをクリックして (呼び出しが単独で機能することを確認するため)、実際にコーディングしているボタンを押すと、機能します。しかし、(検証テスト) ボタンを押さず、実際のコード ボタンのみを押すと、表示されません。デバッガーでも div を確認できます。この一貫性のない機能について何か理由が思い浮かびますか?

コード スニペット:

検証テスト ボタン:

<button type="button" onclick="checkFancybox();">Check Fancybox</button>            
<script>
function checkFancybox(){
$.fancybox.showActivity();
alert("Fancybox call completed.");
}
</script>

実際のコーディング ボタン:

<form id="video-upload-form" action="{url}?nexturl={nextUrl}" 
      method="post" enctype="multipart/form-data" >
<input name="file" type="file"/>
<input name="token" type="hidden" value=""/>
<input value="Upload Video File" type="button" name="submitVideoUpload" 
       onClick="checkFile()" class="button" />
</form>
<script> 
 function checkFile(){
    //RegEx for valid file name and extensions.
    var fileVal = document.forms["video-upload-form"].elements['file'].value;

    if(fileVal != ""){
      //notify user of activity
      $.fancybox.showActivity();
      document.getElementById('vintro-upload-form').submit();
    }else{alert('Please select the Video file.');}
 }
</script>

ありがとう。

4

1 に答える 1

0

正確に言うと... js関数をHTMLにフックする場合は、

<input value="Upload Video File" type="button" name="submitVideoUpload" 
   onClick="javascript:checkFile();" class="button" />

「javascript:;」は重要。このようにして、x-browser で動作することを確認できます。

それ以外の場合は、次の方法で試してみてください。

<input id="mybutton" value="Upload Video File" type="button" name="submitVideoUpload" class="button" />
<script>
// Once the DOM is ready
$(function(){
    // bind your function
    $("#mybutton").click(function(){ checkFile(); });
});

// define your function
function checkFile(){
    //RegEx for valid file name and extensions.
    var fileVal = document.forms["video-upload-form"].elements['file'].value;

    if(fileVal != ""){
        //notify user of activity
        $.fancybox.showActivity();
        document.getElementById('vintro-upload-form').submit();
    }
    else { alert('Please select the Video file.'); }
}
</script>

DOM が読み込まれたときにクリック ハンドラーをバインドします。このようにして、フックする HTML が実際に見つかったときにハンドラーをフックすることができます。

于 2012-07-10T15:57:35.337 に答える