2017-06-03 90 views
0

我有一個用於將圖片上傳到我的ftp的html輸入,並且我希望我的JS在我的按鈕上發現更改。 我CSHTML是:如何在asp.net cshtml文件中獲得我的JavaScript工作?

@using (Html.BeginForm("UploadFile", "Upload", FormMethod.Post, new { 
    enctype = "multipart/form-data" })) 
    { 

    <input id="uploadFile" placeholder="No file..." disabled="disabled" /> 
    <div class="fileUpload btn btn-primary"> 
     <span>Browse</span> 
     <input id="uploadBtn" type="file" class="upload" /> 
    </div> 
    <input type="submit" title="OK" /> 
} 

和我的劇本是

<head> 
<script type="text/javascript" language="javascript"> 
     document.getElementById("uploadBtn").onchange = function() 
     { 
      document.getElementById("uploadFile").value = this.value; 
     }; 
    </script> 
</head> 

當我運行我的代碼,我得到以下信息:

0x800a138f - JavaScript runtime error: Unable to get property 'onchange' of undefined or null reference

我檢查了我的HTML和JS的小提琴,一切都很好,所以我猜Razor和JS在相互之間有一些問題。 任何提示?

+5

移動你的腳本立即關閉''標籤,或之前把它包在'$ (document).ready() –

+0

同意@StephenMuecke。您的腳本在加載到DOM之前嘗試訪問按鈕。 – User3250

+0

@StephenMuecke儘管我同意,如果你在'document.ready'內打包代碼,加載區域不會有問題。也作爲你的評論的擴展,如果你有很多代碼,將它移動到一個JS文件並加載它,而不是內聯腳本 – Rajesh

回答

1

試試這個:

1.

<head> 
<script type="text/javascript" language="javascript"> 

$(document).ready(function(){ 
     document.getElementById("uploadBtn").onchange = function() 
     { 
      document.getElementById("uploadFile").value = this.value; 
     }; 
}); 
    </script> 
</head> 
  • 按@StephenMuecke:將你的腳本立即關閉</body>標記之前(如我查看它的最好方式)

    <body> .............. .............

    <script type="text/javascript" language="javascript"> 
    
    $(document).ready(function(){ 
        $('#uploadBtn').on('change', function() { 
        $("#uploadFile").val($(this).val()); 
    }) 
    }); </script> 
    

    </body>

  • 3,如果您使用單獨的腳本(.js文件),然後嘗試

     $(document).on('change','#uploadBtn' ,function() { 
         $("#uploadFile").val($(this).val()); 
         }); 
    
    +0

    @StephenMuecke。 我嘗試了你所建議的一切,上面的代碼,並在尾標籤之間,頭標籤之間移動腳本,移動到.js文件,所有內容。 現在沒有錯誤信息,但我說我有一個警告信息('斷點不會被命中,調試器的目標代碼類型的可執行代碼不會與此行關聯...'),但我得到相同的警告與另一個工作腳本,所以,它不可能是問題。任何其他提示? –

    +0

    @K。的Gabor檢查無3 – Ashiquzzaman

    +0

    3號的偉大工程,1號以及(有一個代碼重複我沒注意,兩個按鈕具有相同ID,導致該問題)。 謝謝你們,救了我的天! –

    相關問題