C#.NET和Javascript确认
我有一个C#ASP.NET网页,带有一个xml文件上传表单。当用户点击“上传”时,会弹出一个javascript确认提示,询问用户“这个文件是否正确?”。只有当文件名不包含其他表单域中的值时,才会激活确认提醒。C#.NET和Javascript确认
如果上传文件的名称不符合特定条件,将C#ASP.NET表单和JavaScript确认提醒结合使用的最佳方式是什么?
我想你是在有价值的字符串隐藏字段(你没有提到)。实施OnClientClick
的上传按钮:
<asp:button .... OnClientClick="return confirmFileName();"/>
<script type="text/javascript">
function confirmFileName()
{
var f = $("#<%= file1.ClientID %>").val();
var s=$("#<%= hidden1.ClientID %>").attr("value");
if (f.indexOf(s) == -1) {
if (!confirm("Is this correct file?")) {
$("#<%=file1.ClientID %>").focus();
return false;
}
}
return true;
}
</script>
编辑: - 关于<%= file1.ClientID %>
。
这将被替换为文件上传控件的客户端ID,如ctl00$ctl00$cphContentPanel$file1
。它使用类似于$("input[id$='file1']")
这样的类固醇的脚本。欲了解更多信息,请参阅Dave Wards' post。
他也没有提及使用jQuery ... – 2009-09-28 17:52:34
有人可以解释一下这些#吗?它必须与C#ID不同于JS ID吧? – Bryan 2009-09-28 18:02:29
@Bryan:你接受了一个你不明白的答案? – 2009-09-28 18:04:09
window.onload = function() {
document.forms[0].onsubmit = function() {
var el = document.getElementById("FileUpload1");
var fileName = el.value;
if(fileName.indexOf("WHATEVER_VALUE") == -1) {
if(!confirm("Is the file correct?")) {
el.focus();
return false;
}
}
return true;
}
}
用'.focus()'很好用。 – 2009-09-28 17:54:22
你不需要用C#处理这个页面,这听起来像大部分这些都会在客户端完成。
将文件上传控件和一个按钮添加到.aspx表单中。设置按钮的OnClientClick属性为类似
OnClientClick = "return myFunction()"
,然后写一个JavaScript函数,如:
function myFunction()
{
// Check other text values here
if (needToConfirm){
return confirm('Are you sure you want to upload?');
}
else return true;
}
确保“myFunction的()”返回false,如果你想取消回发(即用户在确认对话框中点击“否”)。如果点击“否”,这将取消回发。
你打我2分钟我去TEA ['']> – TheVillageIdiot 2009-09-28 17:32:32
行为分离怎么样? – 2009-09-28 21:05:37
由于事件在这些浏览器中的工作方式,我在执行这种事情时遇到了问题,无法在IE和FireFox中工作。当我在其中一个中工作时,即使我取消了,另一个仍然会导致回传。
下面是我们的代码(浏览器测试是从其他地方窃取的)。
if (!window.confirm("Are you sure?"))
{
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
window.event.returnValue = false;
else
e.preventDefault();
}
除了使用客户端验证之外,还应该添加一个CustomValidator以在服务器端提供验证。您不能相信用户已启用Javascript,或者用户尚未绕过Javascript检查。
你使用什么web框架? ASP.NET? ASP.NET MVC? – cdmckay 2009-09-28 17:16:06
ASP.NET框架 – Bryan 2009-09-28 17:16:36