简体   繁体   English

如何在asp.net cshtml文件中获取我的JavaScript代码?

[英]How can I get my javascript work in an asp.net cshtml file?

I have a html input for uploading a picture to my ftp, and I want my JS the detect changes on my button. 我有一个用于将图片上传到ftp的html输入,并且我希望JS检测按钮上的更改。 My cshtml is: 我的cshtml是:

    @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" />
} 

and my script is 而我的剧本是

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

When I run my code I get the following message: 运行代码时,我收到以下消息:

0x800a138f - JavaScript runtime error: Unable to get property 'onchange' of undefined or null reference 0x800a138f-JavaScript运行时错误:无法获取未定义或空引用的属性“ onchange”

I checked my html and JS in fiddle, everything works great, so I guess that Razor and JS have some problems with each others. 我检查了html和JS,一切正常,所以我猜Razor和JS彼此之间有一些问题。 Any tips? 有小费吗?

Try this: 尝试这个:

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>
  1. As per @StephenMuecke : Move your script to immediately before the closing </body> tag (as my view it's best way) 根据@StephenMuecke :将脚本移至</body>标记之前(据我所知,这是最好的方法)

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

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

    </body>

3.If you use separate script ( .js file) then try 3.如果使用单独的脚本( .js文件),请尝试

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用Javascript调试来使用我的ASP.NET MVC应用程序? - How can I get Javascript debugging to work with my ASP.NET MVC application? 我如何使JavaScript在ASP.NET控件上工作? - How can i make javascript work on asp.net control? 在cshtml文件asp.net核心中缩小javascript - Minify javascript in cshtml file asp.net core 如何在ASP.NET项目中使用JavaScript文件? - How can I use a JavaScript file in my ASP.NET project? 我如何使用javascript获取有关用户用来从asp.net Web应用程序获取设备的信息? - How can i get information with javascript about the device which the user used to get on my asp.net webapp? 我可以在我的asp.net代码中访问Javascript数组吗? - Can i access a Javascript array in my asp.net code? 如何基于ASP.NET MVC中的控制器操作在页面javascript中设置变量? - How can I set a variable in my pages javascript based on my controller action in ASP.NET MVC? 如何将我的 JavaScript 数据传递到 ASP.NET Core 中的 Controller? - How can I pass my JavaScript data up to my Controller in ASP.NET Core? 如何使用JavaScript变量在JavaScript函数中获取ASP.NET ClientID? - How can I use a JavaScript variable to get an ASP.NET ClientID inside a JavaScript function? ASP.net Razor MVC5在我的cshtml页面中的javascript中插入@ {} - ASP.net Razor MVC5 insert @{} inside javascript within my cshtml page
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM