页面中同时使用neatupload组件和在服务器控件绑定js来验证表单.验证表单不起作用.单独使用js可以正常验证.怀疑是neatupload和js冲突.

解决方案 »

  1.   

    用JS验证neatupload组件和表单吗??代码贴出来看看.
      

  2.   

    页面:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="Apply_Manage_test" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><%@ Register Assembly="Brettle.Web.NeatUpload" Namespace="Brettle.Web.NeatUpload" TagPrefix="Upload" %><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
        <script type="text/javascript">
        function test()
        {
            if(document.getElementById("TextBox_Title").value.length==0)
            {
                alert("error");
                return false;
            }
        }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <Upload:InputFile ID="InputFile1" runat="server" />
            <Upload:ProgressBar ID="ProgressBar1" runat="server" Triggers="UploadButton" Inline="true" >
            </Upload:ProgressBar>
            <br />
            <br />
            <br />
            <asp:TextBox ID="TextBox_Title" runat="server"></asp:TextBox><br />
            <br />
            <asp:Button ID="Button_Add" runat="server" Text="Button" />
        </div>
        </form>
    </body>
    </html>代码using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class Apply_Manage_test : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.Button_Add.Attributes.Add("onclick","return test();");
            }
        }
    }去掉
    <Upload:InputFile ID="InputFile1" runat="server" />
            <Upload:ProgressBar ID="ProgressBar1" runat="server" Triggers="UploadButton" Inline="true" >
            </Upload:ProgressBar>
    这个组件js可以正常使用.
    如果加上js弹出"error"信息后 回发服务器. js未起到作用.
      

  3.   

    去掉 
    <Upload:InputFile ID="InputFile1" runat="server" /> 
            <Upload:ProgressBar ID="ProgressBar1" runat="server" Triggers="UploadButton" Inline="true" > 
            </Upload:ProgressBar> 
    这个组件,
    js可以正常使用. 
    如果加上js弹出"error"信息后 回发服务器. js未起到作用. 少了个逗号 容易误解.
      

  4.   

    我也感觉不是冲突的问题,看看 neatupload 源码 
      

  5.   


    我这里没出现问题啊,你的js函数不是能正常验证表单??如果TextBox_Title就未提交表单
      

  6.   

    可以正常验证表单.楼上兄弟加上
             <Upload:InputFile ID="InputFile1" runat="server" /> 
            <Upload:ProgressBar ID="ProgressBar1" runat="server" Triggers="UploadButton" Inline="true" > 
            </Upload:ProgressBar> 
    可以正常验证表单?
      

  7.   

    可以啊,我就是把你的代码拷贝后然后运行的,可以验证表单,如果TextBox_Title为空没有提交表单
      

  8.   

    15楼兄弟,我重新测试了下,还是不通过.测试环境 IE7 1.2.17版本 和 1.1.3版本都测试了.都不通过.web.config 配置
    <httpRuntime maxRequestLength="2097151" />
    <httpModules>
    <add name="UploadHttpModule" type="Brettle.Web.NeatUpload.UploadHttpModule, Brettle.Web.NeatUpload" />
    </httpModules>
      

  9.   

    ie6+iis6+win2003,NeatUpload版本1.2.3032.36311没出现你说的情况,下面是我测试用的代码...<%@ Page Language="C#"%><%@ Register Assembly="Brettle.Web.NeatUpload" Namespace="Brettle.Web.NeatUpload" TagPrefix="Upload" %> <script  runat="server">
        
    protected void Page_Load(object sender, EventArgs e) 
    {
            if (!IsPostBack) 
            { 
                this.Button_Add.Attributes.Add("onclick","return test();"); 
            } 
        }</script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" > 
    <head runat="server"> 
        <title>无标题页 </title> 
        <script type="text/javascript"> 
        function test() 
        { 
            if(document.getElementById("TextBox_Title").value.length==0) 
            { 
                alert("error"); 
                return false; 
            } 
        } 
        </script> 
    </head> 
    <body> 
        <form id="form1" runat="server"> 
        <div> 
            <Upload:InputFile ID="InputFile1" runat="server" /> 
            <Upload:ProgressBar ID="ProgressBar1" runat="server" Triggers="UploadButton" Inline="true" > 
            </Upload:ProgressBar> 
            <br /> 
            <br /> 
            <br /> 
            <asp:TextBox ID="TextBox_Title" runat="server"> </asp:TextBox> <br /> 
            <br /> 
            <asp:Button ID="Button_Add" runat="server" Text="Button"/> 
        </div> 
        </form> 
    </body> 
    </html> 
      

  10.   

    To 楼主
    刚下个NeatUpload-1.2.28版
    并复制了楼主的代码试了几次,运行时验证表单是没问题的!!
    TextBox_Title为空时就弹出Error,没有回传服务器~
    我的环境VS2008+IE7.0,其它的没配置过~
      

  11.   

    我知道你们为什么可以正常运行了没有设置web.config<httpRuntime maxRequestLength="2097151" /> 
    <httpModules> 
    <add name="UploadHttpModule" type="Brettle.Web.NeatUpload.UploadHttpModule, Brettle.Web.NeatUpload" /> 
    </httpModules> 如果不设置的话NeatUpload是无法正常运行的.不能上传大文件.如果你选择一个大文件上传的话.会出现错误在设置web.config后.浏览网页.右键源代码,NeatUpload会产生很多js
      

  12.   

    按楼主的配置又试了下,确实有这问题,
    我把进度条去了就好了~
    所以应该是跟进度条的JS有冲突,
    看页面源代码里也有个onsubmit的验证函数,所以会冲突。。
    <form name="form1" method="post" action="default8.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="form1" enctype="multipart/form-data">
      

  13.   

    把验证函数放到form的onsubmit里可以验证表单
    TextBox_Title为空时就弹出Error,没有回传服务器~ 
    但InputFile1有值时还是会回传服务器。。
    <form id="form1" runat="server"  onsubmit="javascript:return test()">
      

  14.   

    问题已经解决谢谢各位..主要是NeatUpload产生的onsubmit事件onsubmit="javascript:return WebForm_OnSubmit();无论表单验证是否成功.都会执行WebForm_OnSubmit();在页面中重写WebForm_OnSubmit()方法,既可.结贴. 谢谢
      

  15.   

    To xiaowang008 :
        我现在也碰到了你说的问题。
    请问你说的 "在页面中重写WebForm_OnSubmit()方法",具体该怎么写,能贴出代码吗?
     谢谢了
      

  16.   

    现在我只是 用js控制那个“提交”的按钮,如果你的文本框是空 就disable你的提交按钮,这样就可以满足你的表单需求,而不触发upload事件
      

  17.   

    <script type="text/javascript">
        function WebForm_OnSubmit() {
            if(document.getElementById("TextBox_Title").value.length==0) 
            { 
                alert("error"); 
                return false; 
            } 
            NeatUpload_OnSubmitForm_aspnetForm();
            return true;
        }
    </script>
      

  18.   

    这样重写一个WebForm_OnSubmit()就可以了!!!
      

  19.   

    我也碰到过这样的问题,解决方法:<script type="text/javascript"> 
        Page_IsValid=false;
        function test() 
        { 
            if(document.getElementById("TextBox_Title").value.length==0) 
            { 
                alert("error"); 
                return false; 
            } 
        } 
        </script> 因为在NeatUpload.js中又重定义submit,所以js验证发生冲突
      

  20.   

    我碰到一个问题,就是配置好上传控件后,我的所有提交保存的程序都报错,把web.config中的配置去掉就好了,这是怎么回事,还有就是我用了个简单的方法,把上传组件放到一个文件夹下,在这个文件夹下建立了一个web.config,目的是怕影响其他的程序,然后大文件就传不上去了。
      

  21.   

    UP UP 我想知道怎么解决的