我有一个html输入用于将图片上传到我的ftp,我希望我的JS检测到我的按钮上的更改。 我的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" />
}
我的脚本是
<head>
<script type="text/javascript" language="javascript">
document.getElementById("uploadBtn").onchange = function ()
{
document.getElementById("uploadFile").value = this.value;
};
</script>
</head>
当我运行我的代码时,我收到以下消息:
0x800a138f - JavaScript运行时错误:无法获取属性&#39; onchange&#39;未定义或空引用
我用小提琴检查了我的HTML和JS,一切都很好,所以我猜Razor和JS彼此有一些问题。 有小费吗?
答案 0 :(得分:1)
试试这个:
1
</body>
根据@StephenMuecke :将您的脚本移至关闭<body> .............. .............
标记之前(我认为这是最佳方式)
<script type="text/javascript" language="javascript">
$(document).ready(function(){
$('#uploadBtn').on('change', function() {
$("#uploadFile").val($(this).val());
})
}); </script>
</body>
.js
3.如果您使用单独的脚本( $(document).on('change','#uploadBtn' ,function() {
$("#uploadFile").val($(this).val());
});
文件),请尝试
public static boolean isBalanced(String s) {
Deque<Character> stack = new LinkedList<>();
for (int i = 0; i < s.length(); ++i) {
char c = s.charAt(i);
switch (c) {
case '(': stack.push(')'); break;
case '[': stack.push(']'); break;
case '{': stack.push('}'); break;
case ')': case ']': case '}':
if (stack.isEmpty() || !stack.pop().equals(c))
return false;
break;
}
}
return stack.isEmpty();
}