代码之家  ›  专栏  ›  技术社区  ›  Bryan

C#.NET和Javascript确认

  •  0
  • Bryan  · 技术社区  · 15 年前

    我有一个带有xml文件上传表单的C#ASP.NET网页。当用户单击“上载”时,会弹出一个javascript确认警报,询问用户“此文件正确吗?”。仅当文件名不包含来自其他表单字段之一的值时,确认警报才会激活。

    结合使用C#ASP.NET表单和javascript确认警报的最佳方式是什么?如果上载的文件名不符合某些标准,则会激活该警报?

    5 回复  |  直到 15 年前
        1
  •  0
  •   TheVillageIdiot    15 年前

    我假设您正在将有效字符串的值放入一个隐藏字段中(您并没有提到)。实施 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 %> .

    ctl00$ctl00$cphContentPanel$file1 . 它使脚本在使用类似 $("input[id$='file1']") Dave Wards' post

        2
  •  2
  •   womp    15 年前

    将fileupload控件和按钮添加到.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;
    }
    

        3
  •  0
  •   Josh Stodola    15 年前
    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;
      }
    }
    
        4
  •  0
  •   Jon Seigel    15 年前

    我在IE和FireFox中实现这种东西时遇到了问题,因为这些浏览器中的事件工作方式。当我让它在其中一个网站上运行时,另一个网站仍然会导致回发,即使我取消了。

    if (!window.confirm("Are you sure?"))
    {
        if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
            window.event.returnValue = false;
        else
            e.preventDefault();
    }
        5
  •  0
  •   Jason Berkan whiteproud    15 年前

    除了使用客户端验证外,还应该添加CustomValidator以在服务器端提供验证。您不能相信用户已打开Javascript,或者用户没有绕过您的Javascript检查。