[英]Laravel - javascript doesn't work inside @section blade (file input)
我正在研究 Laravel 項目。 我有一個加載文件的輸入,我基本上是在加載文件時(在發送表單之前)顯示文件名。
我正在使用這個示例https://codepen.io/hidde/pen/LyLmrG ,它本身運行良好,但不在我的 laravel 視圖中。
這些是我的文件:
appHome.blade.php (基本布局)
<html>
...
<body class="font-body" >
...
@yield('content')
...
<script>
var input = document.getElementById( 'file-upload' );
var infoArea = document.getElementById( 'file-upload-filename' );
input.addEventListener( 'change', showFileName );
function showFileName( event ) {
var input = event.srcElement;
var fileName = input.files[0].name;
infoArea.textContent = 'File name: ' + fileName;
}
</script>
</body>
</html>
進口-form.blade.php
@extends('layouts.appHome')
@section('content')
...
...
<form>
<input type="file" id="file-upload" multiple required />
<label for="file-upload">Upload file</label>
<div id="file-upload-filename"></div>
</form>
@endsection
我嘗試在 js 腳本中進行 console.log 或檢查文件名變量是否存在並且一切正常,但我認為將文件名添加到 infoArea (infoArea.textContent) 時它不起作用。
這與刀片部分/擴展或 js 有關嗎?
謝謝!
在執行之前嘗試等待文檔准備好 state 和 javascript:
function ready(callbackFunc) {
if (document.readyState !== 'loading') {
// Document is already ready, call the callback directly
callbackFunc();
} else if (document.addEventListener) {
// All modern browsers to register DOMContentLoaded
document.addEventListener('DOMContentLoaded', callbackFunc);
} else {
// Old IE browsers
document.attachEvent('onreadystatechange', function() {
if (document.readyState === 'complete') {
callbackFunc();
}
});
}
}
ready(function() {
var input = document.getElementById( 'file-upload' );
var infoArea = document.getElementById( 'file-upload-filename' );
input.addEventListener( 'change', showFileName );
});
function showFileName( event ) {
var input = event.srcElement;
var fileName = input.files[0].name;
infoArea.textContent = 'File name: ' + fileName;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.