不知道,我这样的理解对不对?你可以在页面第一次加载的时候,将数据库中读出的值放在页面的hidden 标签内,如:
<input type=hidden name=file_old value=<..> >当用户提交的时候,就判断file框的值和 file_old的值是否相等,

解决方案 »

  1.   

    我感觉重写一下控件是必须的,微软把它的控制的太死了。要不你就差一下msdn,看看微软是不是重写过file 控件,然后后面使用 showstv(0!0) 的方法。
      

  2.   

    showstv(0!0) 理解正确!
    如何解决?
      

  3.   

    不行。当初定html规范的限制。用activex控件或者applet。
      

  4.   

    ruir(瑞儿) : 我在上边不是写了解决方法了吗?你可以在页面第一次加载的时候,将数据库中读出的值放在页面的hidden 标签内,如:
    <input type=hidden name=file_old value=<..> >当用户提交的时候,就判断file框的值和 file_old的值是否相等,
      

  5.   

    对阿,表单中还有其他元素,如果我只改了其他某一个元素,而没有更改file框的值(而此时file框的值就是空值),提交表单的时候就有两个值更改了,一个是刚才说的其他的表单元素的值,另一个就是file框的值由原来的某个部位空的值改成了空值!
    也就是说如果你不想更改file的值,则非要重新浏览一下file按钮从而输入与原来的值一样的值。
    (我是用type=hidden来保存它原来的值的)
      

  6.   

    我用这个以后:
    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=129326file框并没有付初值,叶面有js错误:
    由于该控件目前不可见,未启用或其类型不允许,因此无法将焦点移向他
      

  7.   

    我明白你的意思拉。 很好解决的,方法如下:页面放置两个hidden 标签 
    file_old:用来存放原有数据库中的值,初始值是原有数据库中的值
    file_new:用来存放后来用户操作过的情况的值,初始值是原有数据库中的值 <input type=hidden name=file_new value=<..> >
    <input type=hidden name=file_old value=<..> >file标签 添加javascript方法
    <input type=file size=30 name=filename1 onchange="javascript:changed(this);"><javascript>
    changed(ob)
    {
       document.form.file_new.value=this.value;
    }
    </javascript>这样,在你经过重新选择之后,file_new.value的值是经过了变化的。当用户提交的时候,就判断file_new.value的值和 file_old.value的值是否相等,注意:我不知道你数据库中存放的原来的值是什么,所以,在javascript中可能要处理一下,因为this.value 取到的值可能是如下形似的:C:\Documents and Settings\Administrator\My Documents\xxxx.doc ,  这个可能与你从数据库里取得的值是不一样的,所以,具体的你要自己修改一下。但解决的道理就是这样的拉!